| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 715 人关注过本帖
标题:代码错误在哪里?
取消只看楼主 加入收藏
zbsilent
Rank: 2
等 级:论坛游民
帖 子:23
专家分:16
注 册:2010-11-11
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
代码错误在哪里?
#include"stdio.h"
int main()
{
int score[10],max=0,min=100,i,temp,sum=0;
double avg;
for(i=0;i<10; )
{  
   printf("Please input the score:");
   scanf("%d",&temp);
   if(temp<0 || temp>100)
   {
     printf("输入有误!\n");
     continue;
 }
score[i++]=temp;
if(temp>max)
max=temp;
if(temp<min)
min=temp;
sum=sum+temp;
avg=(double)sum/10;
    }
printf("max=:%2d min=:%2d vag=:%lg\n",max,min,avg);
return 0;
}
这段是用来编写输入十个人的成绩,然后求最大和最小成绩,以及平均值的,我是一个初学者,老师说其中还存在一定问题,我想请高手给我指出,我会虚心学习,谢谢。
搜索更多相关主题的帖子: 代码 
2010-11-11 11:37
zbsilent
Rank: 2
等 级:论坛游民
帖 子:23
专家分:16
注 册:2010-11-11
收藏
得分:0 
回复 2楼 自由战士89
以下是引用自由战士89在2010-11-11 12:03:45的发言:

#include"stdio.h"
int main()
{
int score[10],max=0,min=100,i,temp,sum=0;
double avg;
for(i=0;i<10; )  //i不做运算,永远小于10,那就死循环了,所以后加i++,
{  
   printf("Please input the score:");
   scanf("%d",&temp);               //temp不是数组,只能存一个值,这里不需要temp变量
   if(temp<0 || temp>100)
   {
     printf("输入有误!\n");          //输入有误,就应该break;
     continue;
}
score=temp;              //这里就没意义了,数组可以循环遍历比较,
if(temp>max)
max=temp;
if(tempmin=temp;
sum=sum+temp;
avg=(double)sum/10;
    }
printf("max=:%2d min=:%2d vag=:%lg\n",max,min,avg);
return 0;
}
以下改正后:
#include"stdio.h"
int main()
{
int score[10],max=0,min=100,i,sum=0;
double avg;
printf("Please input the score:\n");
for(i=0;i<10;i++ )
    {  
      
       scanf("%d",&score);
       if(score<0 || score>100)
       {
         printf("输入有误!\n");
         break;
       }
    }
for(i=0;i<10;i++ )
    {
    //score=temp;
    if(score>max)
    max=score;
    if(score    min=score;
    sum=sum+score;
    }

avg=(double)sum/10;
   
printf("max=:%2d min=:%2d vag=:%lg\n",max,min,avg);

if(score[i]>50 && score[i]<60)//我想在这里将限定范围内的成绩改为60分,并且全部输出,但是输出后分数没有改变,希望前辈指出错误在哪里。//
score[i]=60;
for(i=0;i<10;i++)
printf("%3d",score[i]);
return 0;
return 0;
}
2010-11-11 12:16
zbsilent
Rank: 2
等 级:论坛游民
帖 子:23
专家分:16
注 册:2010-11-11
收藏
得分:0 
回复 3楼 zbsilent
并且那个continue那里不能改,break直接跳出,以后无法继续输入了。
2010-11-11 12:20
zbsilent
Rank: 2
等 级:论坛游民
帖 子:23
专家分:16
注 册:2010-11-11
收藏
得分:0 
谢谢各位了!

[ 本帖最后由 zbsilent 于 2010-11-12 10:30 编辑 ]
2010-11-12 10:28
zbsilent
Rank: 2
等 级:论坛游民
帖 子:23
专家分:16
注 册:2010-11-11
收藏
得分:0 
回复 9楼 火龙果
以下是引用火龙果在2010-11-12 00:04:14的发言:

#include
int main()
{
int score[10],max=0,min=100,i,temp,sum=0;
double avg;
for(i=0;i<10; )
{  
   printf("Please input the score:");
   scanf("%d",&temp);
   if(temp<0 || temp>100)
   {
     printf("输入有误!\n");
     continue;
    }       //你这里用的花括号没有对齐,对齐了就没事了
    score=temp;//在这里是个数组,可以这样赋值么?是不是score[i]?
    if(temp>max)
    max=temp;
    if(temp
谢谢前辈的指导,下次我会多留意格式问题的,我初学数组,所以需要一些指点,谢谢了
2010-11-12 10:29
快速回复:代码错误在哪里?
数据加载中...
 
   



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

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