#include<stdio.h>
void
main()
{
int
a[100],num=0
char
k
do
{
scanf("%d",&a[num])
num++
k=getchar()
}while(k!='\n'&&num<100)
}
这样以空格隔开各个数字,输入若干以后按回车即可。
但是容错性不好,如果结尾在按回车前多输入了一个空格,那么将继续循环。
如果提升了容错性,那么代码将变得比较复杂。
思路:使用while(scanf("%d",&n)&&n),表示输入正确并且输入的数不等于0时继续循环,否则跳出循环。
参考代码:
#include <stdio.h>int main()
{
int n
while(scanf("%d",&n)&&n){
printf("%d\n",n)
}
return 0
}
/*
运行结果:
1
1
2
2
0
*/
这还真有点小学问,如果是字符数组,if(a[i]!='\n') break就可以了,但得把不需要的那个'\n'从数组中用a[i]='\0'抹掉并添加了结束符。要是数字数组,比如整数数组呢,上面方法就不凑效了。用下面代码可实现——