| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 826 人关注过本帖
标题:如何跳出数组输入的循环
只看楼主 加入收藏
beyondlwm
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2006-7-19
收藏
 问题点数:0 回复次数:6 
如何跳出数组输入的循环
随机将一个班的成绩输入到一个数组中。
void main()
{
int a[200],b=0; //先将数组定义到一个比较大的范围
while (?)
{
scanf("%d",&a[b]);
b++;
}
}



现在的问题是,并不知道抽到的班有多少个成绩,假如我输入30个成绩后想要跳出循环,该如何设置WHILE的条件?
不能设定特定的数字或者字符(字符也是数字嘛)。因为输入的成绩一切都是未知的
请教各位给个解决的办法了。不知道我叙述清楚了没有
搜索更多相关主题的帖子: 输入 
2006-07-19 14:55
lhyanlh
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-7-11
收藏
得分:0 

输个负数

2006-07-19 15:12
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 

对于楼主的问题,动态内存分配是一个好办法。
但是假如楼主还没学动态分配,那么,循环里面可以这样:
while (scanf("%d", &a[b++]) == 1) //输入的值为非数字字符就跳出循环了


我的原则很简单:不做不喜欢的事!
2006-07-19 15:42
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
比较简单的跳出,只要条件不符合就可以跳出。
while(scanf("%d",stu[i])&&stu[i]!=?)
?只要不满足条件就可以了,输入时碰到这个字符,回车就可以退出了。
还可以用文件结束

while((scanf("%d",stu[i]))!=EOF)

倚天照海花无数,流水高山心自知。
2006-07-19 16:54
beyondlwm
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2006-7-19
收藏
得分:0 

谢谢二楼的,你说的办法很好!我写出的程序如下已经调试成功:

#include<conio.h>
#include<stdio.h>
void main()
{
int a[200],b=0,c=0; //先将数组定义到一个比较大的范围
printf("请输入:");
while (scanf("%d", &a[b++]) == 1)
{
scanf("%d",&a[b]);
b++;
}
while(c<b-1)
{
printf("%d",a[c]);
c++;
}
getch();
}

不过请问这个条件scanf("%d", &a[b++]) == 1的具体意思是什么意思啊?

2006-07-19 21:04
beyondlwm
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2006-7-19
收藏
得分:0 
另外一个问题就是,数组被赋值的一共有b个对吗?因为最后输入了一个非数字,这个也应该要占用一个数组的,不过也问题不大拉。
2006-07-19 21:06
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
收藏
得分:0 
以下是引用beyondlwm在2006-7-19 21:06:20的发言:
另外一个问题就是,数组被赋值的一共有b个对吗?因为最后输入了一个非数字,这个也应该要占用一个数组的,不过也问题不大拉。

数组一共输入了b个没错,最后一个输入非数字,并没有存入数组,所以并没有您所说的问题。
scanf()在输入时,如果输入成功,则返回输入的参数个数,如果不成功返回零,即为EOF.
不过您的程序有一个小弊病隐藏在里面,就是您并没有消除键盘记录的最后一个非数字,这对您以后扩充程序的时候绝对是个要害.要解决这个问题,您可以在您的程序加上一句:
while (scanf("%d", &a[b++]) == 1)
{
scanf("%d",&a[b]);
b++;
}
 getchar(); //或者是fflush(stdin);
while(c<b-1)
{
printf("%d",a[c]);
c++;
}
这样便可以了.


对不礼貌的女生收钱......
2006-07-20 15:04
快速回复:如何跳出数组输入的循环
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015013 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved