#include
int main()
{ int a,j;
char c[20][20];
scanf("%d\n",&a);
//a=2;
for(j=1;j<=a;j++) gets(c[j]);
printf("程序结束\n");
return 0;
}
呵呵,只是因为输入的时候没有要求换行,结果gets就直接在a后获取了一次字符\n;所以for循环里就只用再获取一次就结束了.
你照我改的代码去做,在scanf内加个\n将键盘的回车符直接过滤掉,for就会要求你输入两次字符串了.
用scanf函数输入的时候,写入数字后回车符滞留在缓冲区,而gets函数遇到回车结束,所以第一次输入直接被缓冲区的回车符结束掉了。
在scanf函数后加一句getchar();就可以了。
for(j=1;j<=a;j++) 看到吗
J《=A A=2 所以循环2次
不太可能吧?