scanf()函数的要求是输入的格式与格式控制字符串的要求保持一致,既然格式控制字符串有\n,那么在输入时也必须对应的有一次回车,所以这里需要两次回车。scanf()一般情况下不应该出现\n,除非知道这样用的后果。
scanf("%i\n",&a);改为scanf("%d",&a);不要加\n,整数用%d