| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 578 人关注过本帖
标题:新手C语言编程循环问题
只看楼主 加入收藏
xuyao18
Rank: 2
等 级:论坛游民
帖 子:50
专家分:30
注 册:2009-4-27
结帖率:22.22%
收藏
 问题点数:0 回复次数:7 
新手C语言编程循环问题
我刚写了一个程序  ,该程序的要求是要先输入一个数字A,这个数字A代表着有A个数字相加,再在后面输入A个数字,就会进行相加,当没有输入数字的时候,就把原来的和全部输出。但是我写的这个程序不能够正常地输出,而是一直在读,应该是那个WHILE 循环有点问题。
希望各位不吝赐教,小生这厢感谢各位了!


#include <stdio.h>
void main ()
{
    int i,j,a,b,s[100];
    for(i=0;i<100;i++)s[i]=0;
    while(scanf("%d",&a)!=EOF)
    {
        j=0;
        for(i=0;i<a;i++)
        {
            scanf("%d",&b);
            s[j]+=b;
        }
        j++;
    }
    for(i=0;i<j;i++)
    {
        printf("%d\n",s[i]);
    }
}
搜索更多相关主题的帖子: C语言 
2009-10-09 15:29
lansong
Rank: 4
等 级:业余侠客
帖 子:79
专家分:226
注 册:2009-6-11
收藏
得分:0 
while(scanf("%d",&a)!=EOF)
新手会这句,厉害啊!这句貌似要按ctrl+z才结束;
这样输入;
10
1 2 3 4 5 6 7 8 9 10
3
1 2 3
^Z

结果输出是:
55
6


j=0放到这句while(scanf("%d",&a)!=EOF)的前面;  

2009-10-09 16:25
xuyao18
Rank: 2
等 级:论坛游民
帖 子:50
专家分:30
注 册:2009-4-27
收藏
得分:0 
恩。  但是题目的要求是要当:“没有输入数字的时候,就把原来的和全部输出”
这个应该如何实现呢?
那个循环可以换成别的么?
2009-10-09 16:34
lansong
Rank: 4
等 级:业余侠客
帖 子:79
专家分:226
注 册:2009-6-11
收藏
得分:0 
题目的意思貌似只实现一次:
输入:
10 1 2 3 4 5 6 7 8 9 10
然后输出:
55


如果是这样的话,那就不用这while(scanf("%d",&a)!=EOF) 循环了,该怎么改,你应该知道吧
2009-10-09 16:43
刘暮哲
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:75
专家分:83
注 册:2009-9-25
收藏
得分:0 
EOF就是-1,是在stdio.h里定义的。
按照上面的说明,scanf函数只有在第一个参数为NULL(空指针)的情况下,才可能返回EOF,否则,返回成功格式化并赋值的参数个数(>=0)。
 
所以,楼主你的这个循环,将是一个死循环。

做最好的自己
2009-10-09 20:28
刘暮哲
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:75
专家分:83
注 册:2009-9-25
收藏
得分:0 
有点奇怪了  这个程序我觉得没有问题  怎么办  大侠快来指教下   循环式可以的  

做最好的自己
2009-10-09 20:40
viky2003
Rank: 5Rank: 5
等 级:职业侠客
帖 子:375
专家分:383
注 册:2007-4-11
收藏
得分:0 
#include <stdio.h>
int main(int argc, char *argv[])
{
  int i = 0;
  int count = 0;
  int value = 0;
  int sum = 0;
  printf("input count of number:\n");
  scanf("%d",&count);
  do
  {
      i++;
      if(!scanf("%d",&value))
      break;
      sum += value;
  }while(i < count);
  printf("%d\n",sum);
  system("PAUSE");   
  return 0;
}
输入一个非法的数字或者输入count个数字就会计算出结果。
不过变量太多,感觉没写好。

要练习算法就来http:///!!有挑战哦!!
2009-10-09 21:17
sen_lin
Rank: 6Rank: 6
等 级:侠之大者
威 望:3
帖 子:114
专家分:436
注 册:2009-3-24
收藏
得分:0 
其实换个思路也行,不一定非得要用语言本身解决这个问题,完全可以把A初值赋零,用if(A==0)来判断是否对A进行了赋值!
2009-10-09 21:38
快速回复:新手C语言编程循环问题
数据加载中...
 
   



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

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