想问一下为什么后面直接用scanf("%d",&a)输入数据不可以运行程序.
scanf()函数有它的返回值,其返回值是成功读取的项数。当scanf("%d", &a)成功为a读取一个整数后,将会返回1,此时scanf("%d", &a)==1成立,进入循环。终止循环的条件是输入一个非整数值。如果不使用while循环程序读取并输出后会直接退出。楼主的第二个代码段似乎没错。