回复 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;
}