如何循环接受scanf输入的int值并且存入数组?

输入的数可能是逗号分割,也可能是空格分割的,该怎么写呢,主要是不知道循环的结束条件是什么。例如输入1,3,2,4 回车   数组中写入1 3 2 4;
或者输入1 3 2 4回车   数组中写入1 3 2 4;
谢谢各位的回答,但是忘了补充一点,事先不知道数字的个数。
一开始声明一个足够大的数组,接受输入,以回车符结束~我的问题是不知道终止条件那里该怎么写

使用循环可以方便地实现这一点。

#include<stdio.h>

int main()

{

int a[1000],n,i=0;

long s=0;

printf("请输入数据,并以-1表示结束:");

while(1)

{

  scanf("%d",&a[i]);

  if(a[i]==-1)break;

  s+=a[i++];

}

printf("共输入有效数据%d个,总和=%ld,平均值=%lf\n",i,s,(float)s/i);

system("pause");

return 0;

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-13
#include<stdio.h>
#include<stdlib.h>

main()
{int a[4],i,j;
for(i=0;i<4;i++)
scanf("%d,",&a[i]);
for(j=0;j<4;j++)
printf("%d ",a[j]);
}这是第一个输入四个数1,3,2,4并输出13 2 4
#include<stdio.h>
#include<stdlib.h>

main()
{int a[4],i,j;
for(i=0;i<4;i++)
scanf("%d",&a[i]);
for(j=0;j<4;j++)
printf("%d ",a[j]);
}这是第二个输入四个数1 3 2 4并输出1 3 2 4追问

不知道数字的个数呢? 以回车符确定接受输入完毕~

第2个回答  推荐于2018-03-05
int mat[];
for (int i = 0; i <= 4; ++i)
scanf ("%d", &mat[i]);追问

数字的个数是未知数,该怎么写终止条件呢?

追答

回车字符是\n,有个函数getchar(),
#include
main()
{
int a[1000];
int c,k=0;
for (int i = 0; i<1000 && c!=EOF && c!='\n'; ++i)
{
++k;
scanf ("%d", &a[i]);
c=getchar();
}
for (int j=0;j<k;++j)
printf("%d ",a[j]);
}
看看可以不

本回答被提问者和网友采纳
相似回答