c语言如何判断不确定个数数据输入结束

我输入一组数据,但是个数不确定,比如输入1 2 3 ,就输出1 2 3,输入1 2 3 4,就输出1 2 3 4,怎么判断输入结束?(不想用字母指定,scanf也不能读入\n怎么办),求大神。

第1个回答  推荐于2017-10-08
输入多组测试数据,判断输入结束的方式与题目要求有关。

常见方式有:
先输入测试组数,再读数据
int tn,n;
scanf("%d", &tn);
while( tn-- ) { scanf("%d", &tn);....} //按tn次数循环读数

不确定测试组数,以规定数据结束,如,-1或负数
while( scanf("%d", &n), n>=0 ) { //只要n不是负数,就会循环

}

不确定测试组数,以EOF判定结束,
while( scanf("%d", &n)!=EOF ) { //当收到EOF信息时,结束

}
这种情况一般是测试库用文件来作为数据输入源,如果以键盘为输入源,则要在空行位置按ctrl+z达到结束效果。
第2个回答  2014-09-12
使用 vscanf解析参数列表。

see see

http://www.cplusplus.com/reference/cstdio/vscanf/本回答被提问者采纳
第3个回答  2014-09-12
#include <stdio.h>
int main()
{
int ch;
while( (ch=getchar())!='\n' )
putchar(ch);

return 0;
}本回答被网友采纳
第4个回答  2015-10-17
while(scanf("%d",&a)!=EOF)

c语言如何判断不确定个数数据输入结束
先输入测试组数,再读数据 int tn,n;scanf("%d", &tn);while( tn-- ) { scanf("%d", &tn);...} \/\/按tn次数循环读数 不确定测试组数,以规定数据结束,如,-1或负数 while( scanf("%d", &n), n>=0 ) { \/\/只要n不是负数,就会循环 } 不确定测试组数,以EOF判定结束,while(...

C语言怎么判断输入的结束
一般有两种方法:1 在输入前 约定输入个数。 比如 先输入一个总数 再输入总数个或总数组的数据 2 约定输入结束标记 这个是最常用的。 比如 以空格 换行 或者EOF作为结束标记。或者约定输入非法数据结束。

C\/C++语言中,在不确定用户输入数据个数的情况下来控制循环结束?
int main(){ int a[100],i=0,ch=0;printf("请输入一组整形数据(不超过100个):");do{ scanf("%d",&a[i++]);ch=getchar();}while(ch!='\\n');for(ch=0;ch

C语言 输入不确定的个数的数字后停止循环
用 while(scanf("%d", &n) != EOF) 实现啊,在Windows下按Ctrl+z就可以停止获取字符了

用C语言实现从键盘上输入不确定个数的数字,将数字从小到大排序后输出...
对于输入的数据的个数不确定的情况,一般会预设一个特殊的非法值(这个值是属于论域之外的一个值)作为终止值,例如如果论域是正整数,则通常会将0作为终止值,即当输入0时结束,且0不作为有效数据。 因此如果你要输入的都是正整数,则程序可如下(对于其它情况可采用类似方法) #include <stdi...

c语言关于不确定个数的整数输入问题? (怎么编程才能表示出到底输入了几...
我习惯是这样的,如果要测试的数多的话,我先写入一个txt文本中,代码中只要读文本数据就行了,这样不用每次调试代码都要手动输入这么多数。数值少的话可以循环输入,当输入某个自定义的值时退出输入循环就行了

C语言,多组输入,每一行输入几个整数,但是每一行输入的数的个数不确定...
增加判断结束的标志就可以了,比如说我这里判断是以-1 作为结束符,然后输入所有已经输入的内容。include<stdio.h> void main(){ printf("input you integer\\n");int a[100];int temp=0;scanf("%d",&temp);int i=0;while(temp!=-1){ a[i]=temp;scanf("%d",&temp);i++;} int j=...

C语言怎么输入不确定个数的double型数据?
你可以这样,判断下一个是不是换行,如果是结束输入...例如:include <stdio.h>int main(){ double upnum[1000]; int i, n = 0; while (scanf("%lf", &upnum[n++]) != EOF) { if (getchar() == '\\n') { for (i = 0; i < n; i++) printf("%.2lf ", upnu...

c语言中,gets 和getchar及scanf是如何判断你输入的字符或者字符串结束...
scanf()是什么都可以输入,scanf()是以回车代表输入结束 scanf()中会用到空格 是用作分隔符的 因为scanf()可以输入多个变量,如 canf("%d%d",&a,&b);\/\/表示输入两个整形的数分别赋给变量a、b 在输入另个数时用空格间隔开 但如果canf("%d,%d",&a,&b);\/\/如果两个%d中间...

c语言,先在第一行中输入不确定个数,按换行键运行代码,无结束标志。为什 ...
{ int a;\/\/用于存储获取到的值 while (scanf("%d", &a) != EOF)\/\/持续获取一个数字, 存储在 a 中, 如果获取结果为 EOF (即文件结尾), 则停止 { printf("Your input is : %d\\r\\n", a);\/\/输出设置的值 } return 0;} 因为不确定你说的“运行代码”指的是什么,我就将数原样...

相似回答