| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6395 人关注过本帖
标题:C语言 新手求教!输入一组数据,如何跳出循环.
只看楼主 加入收藏
yangzexun24
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2010-12-15
收藏
得分:0 
回复 4楼 卡其
。。。不是啊 在实际应用中,要是有大量数据要输入 你不会先数一遍有多少个再输吧
2011-03-31 21:42
Ben2212
Rank: 2
来 自:AHU
等 级:论坛游民
帖 子:12
专家分:75
注 册:2011-3-30
收藏
得分:20 
我觉得可以利用scanf()的特性,一般scanf()具有返回值,返回值为读出的变量个数,比如在你的例子中scanf("%d",&st[i])中,每输入一个数,就返回1,同理如果需要两个输入变量,就返回2,所以可以将程序改为:
程序代码:
#include <stdio.h>
#define N 50
void main()
{
    int i=0,n=0;
    int st[N];
    printf("please input numbers:\n");
    /*for(i=0;i<N;i++)
    {
        scanf("%d",&st[i]);
        n++;
    }*/
    while(scanf("%d",&st[i++]) != EOF)
    {
        n++;
    }
    for(i=0;i<n;i++)
        printf("%d ",st[i]);
    printf("\n");
}
如果想结束输入,需要使用组合键“ctrl+z”。
2011-03-31 22:04
aliyunyun
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-3-26
收藏
得分:0 
#include <stdio.h>
#define N 50
void main()
{
int i,n;
int st[N];
printf("please input numbers :\n");
scanf("%d",&n);
printf("please input numbers :\n");
for(i=0;i<n;i++)
{
  scanf("%d",&st[i]);
     
}
for(i=0;i<n;i++)
  printf("%d ",st[i]);
  printf("\n");
}
可以先输入你要写入的数的总数只要不超过50就好
2011-03-31 22:05
yangzexun24
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2010-12-15
收藏
得分:0 
回复 12楼 Ben2212
谢谢!我找到了一个更好的方法!编辑了,比较简单,去看看吧!!!
2011-03-31 22:20
Ben2212
Rank: 2
来 自:AHU
等 级:论坛游民
帖 子:12
专家分:75
注 册:2011-3-30
收藏
得分:0 
以下是引用yangzexun24在2011-3-31 22:20:18的发言:

谢谢!我找到了一个更好的方法!编辑了,比较简单,去看看吧!!!
恩,这个方法也可以,以回车换行来结束很方便,我的方法可作参考吧!
2011-03-31 22:47
yangzexun24
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2010-12-15
收藏
得分:0 
回复 15楼 Ben2212
当然!!
2011-03-31 22:52
bianchengcbl
Rank: 1
等 级:新手上路
帖 子:18
专家分:9
注 册:2010-7-25
收藏
得分:0 
你尝试以回车作为输入结束标志,在for循环里的循环条件上加一个不能等于回车键的ASCII值。
仅仅是我的一个想法,做参考!
2011-04-02 09:15
快速回复:C语言 新手求教!输入一组数据,如何跳出循环.
数据加载中...
 
   



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

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