| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2312 人关注过本帖
标题:我看了六个钟头代码就是看不出错误!运行出错.高手帮忙解答!
只看楼主 加入收藏
4665544
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2008-1-10
收藏
 问题点数:0 回复次数:15 
我看了六个钟头代码就是看不出错误!运行出错.高手帮忙解答!
int main()
{
  int counter;
  int grade;
  int total;

  float average;

  total=0;

  counter=1;

  printf ("enter grade, -1 to end:");
  scanf ("%d",&grade);

  while ( grade != -1){

  total=total+grade;

  counter=counter+1;

  printf ("enter grade, -1 to end:");
  scanf("%d",&grade);
  }

  if (counter != 0){
  average=( float ) total / counter;
  printf("class average is %.2f\n",average);
  }
  else {
  printf("cuowu\n");
  }
  getch();
  return 0;

}

问题出在比如你输入 -1 然后回车 居然不会显示 "cuowu" 请教
搜索更多相关主题的帖子: grade counter 钟头 average 
2008-01-20 08:34
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
counter=1;

......

if (counter != 0){
 
counter永远不可能等于0

从BFS(Breadth First Study)到DFS(Depth First Study)
2008-01-20 10:04
4665544
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2008-1-10
收藏
得分:0 
不够明确!
那如何让他显示?
2008-01-20 13:01
4665544
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2008-1-10
收藏
得分:0 
回复 2# 的帖子
版主.不够明确呢.那如何让他显示出 "cuowu
"
2008-01-20 13:06
闪闪4521
Rank: 1
等 级:新手上路
帖 子:196
专家分:0
注 册:2007-11-30
收藏
得分:0 
counter=1;

你在最开始就已经将counter的值设为1了
所以那个判断一直为真,当然没错误了
2008-01-20 20:51
ggggiaqgyd
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2007-10-13
收藏
得分:0 
if(counter==1)
printf("错了吧,小子");
2008-01-20 21:31
nobush
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2008-1-10
收藏
得分:0 
counter=0
2008-01-20 23:26
chenyiqing23
Rank: 2
等 级:论坛游民
帖 子:84
专家分:53
注 册:2007-12-27
收藏
得分:0 
维生素C
counter=1;
if (counter != 0)

你已经设置了1了!!!
就不用判断了!!!
2008-01-21 16:15
chenyiqing23
Rank: 2
等 级:论坛游民
帖 子:84
专家分:53
注 册:2007-12-27
收藏
得分:0 
C~~~
用指针看看可不可以解决问题!!!
2008-01-21 16:19
Ethip
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:771
专家分:0
注 册:2008-1-18
收藏
得分:0 
回复 1# 的帖子:发现几个问题啊!
1.你要的是average,为什么还要来个 if  呢? 直接 average=( float ) total / counter,就可以啦,它就像当年日本鬼子无条件投降一样的!
2.你的代码有冗余的。比如,while里面不要再写个  printf ("enter grade, -1 to end:");
  scanf("%d",&grade);提示一下,有while之前那个scanf就可以输入所有的grade。都保存在内存缓冲区,遇到while时,在一个一个的取出来。
3.你应该正在学C++,请注意区分它和C的语法风格,还是有区别的!C中,一般来讲main()是void类型,而C++里面才是int,当然要语句return = 0了,它表示程序正常结束!
PS:误解和说错之处,请多包涵!
2008-01-21 19:48
快速回复:我看了六个钟头代码就是看不出错误!运行出错.高手帮忙解答!
数据加载中...
 
   



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

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