以EOF结束,输入方式 ctrl z回车
#include <stdio.h>int main()
{
int a[30]
int n=0,i
while(~scanf("%d",&a[n])) n++
for(i = 0i<ni++)
printf("%d ",a[i])
printf("\n")
return 0
}
首先,要明确您的输入在何种情况下表示终止,是空格,还是回车?。。就像字符串,用scanf()就是遇到空格后,将空格前的字符串读入,用gets()就是遇到回车后把整行读入。。
如果说您的输入是在回车后终止的,有个简单的办法,就是在每读取一个数字后,判断一下用户是敲空格还是回车。。
程序代码如下:
#include
<stdio.h>
int
main(void)
{
int
a[100]
int
i
scanf("%d",
&a[0])
i
=
1
while
((int)getchar()
!=
10)
{
scanf("%d",
&a[i])
i++
}
printf("一共%d个数\n",
i)
system("pause")
return
(0)
}
运行结果如下:
但是这个程序有很多问题,比如用户在输入空格后,再敲回车,就退出不了了。。
其实通常情况是这么做的,就是自己设定个结束标志,比如当用户输入
-1
的时候,终止输入。。
如果情况更复杂的话,估计就只能以字符串形式输入,然后再一个字符一个字符的判断了。。