scanf输入整型数组

ziyaziya 2009-08-29 10:25:02
定义了一个数组
array[MAX];

for(i = 0;i<MAX;i++)
scanf("%d",&array[i]);

若想输入任意数目的整型变量的个数,数组中不用完全定义完整。。。
请问结束提示符是什么,或者应该怎么在语句中设置?
...全文
3960 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qkhhxkj102 2009-09-03
  • 打赏
  • 举报
回复
这样也行的
norahsmile 2009-09-03
  • 打赏
  • 举报
回复
scanf()函数的返回值是int型。是获得成功输入的数据的个数。
所以
int i=0;
while(scanf("%d",a[i])==1)//当输入的是整型数据时
i++;
当输入非int型数据时退出while循环
fiveyes 2009-08-31
  • 打赏
  • 举报
回复
如果能够有一个特殊的值来代表输入结束,那就可以采取简单的代码,如果不能,那就需要增加另一个输入,来确认是否结束。
当无法根据特殊值来结束时,大概就得这样:

#include <stdio.h>
#define MAX 100

int main()
{
int array[MAX] = {0};
int i = 0, input;
do
{
printf("是否输入第%d个数值?(1是,0否)", i+1);
scanf("%d", &input);
if(input == 0) break;
else
{
printf("请输入:");
scanf("%d", &array[i]);
}
i++;
}while(i<MAX);

return 0;
}

闲闲的程序猿 2009-08-31
  • 打赏
  • 举报
回复
for。。。
{
if(scanf("%d",&array[i])!=EOF) continue;
else break;
}
u0fly 2009-08-29
  • 打赏
  • 举报
回复
学习了 很有用啊
xoliver563 2009-08-29
  • 打赏
  • 举报
回复

if( scanf("%d",&array[i])<=0 )break;

我是初学者,看到这样的语句,真的学习了。
飞天御剑流 2009-08-29
  • 打赏
  • 举报
回复
[Quote=引用楼主 ziyaziya 的回复:]
定义了一个数组
array[MAX];

for(i = 0;i <MAX;i++)
    scanf("%d",&array[i]);

若想输入任意数目的整型变量的个数,数组中不用完全定义完整。。。
请问结束提示符是什么,或者应该怎么在语句中设置?
[/Quote]

你可以输入非数字字符来结束scanf,这时候scanf的返回值小于等于0。


array[MAX];
for(i = 0;i <MAX;i++)
if( scanf("%d",&array[i]) <= 0 ) break;
lsldd 2009-08-29
  • 打赏
  • 举报
回复
while(cin >> a[i] )
{
}
在命令提示符中是Ctrl+Z表示输入结束
在vc中可以设置用文本输入,比如在1.txt中写好所有数组的值
工程属性中设置输入文件
>>1.txt

69,777

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧