C语言高手来帮我看下为什么 这个程序 编译没有错误 但是一运行就会 让结束任务;

2024-12-13 17:18:21
推荐回答(2个)
回答1:

有几个问题:
1 for(i=0;i<=30;i++);
分号加了 就使得for空循环30次

2 scanf("%d",score);
第一个参数修改成%f 表示浮点输入
第二个参数修改成 &score 必须为地址指针,否则内存会出错

3 hign 和 sum 修改为float
输出部分也做相应更改

4 high 的赋值语句左右倒了
应该为 high = score

修改后代码:

#include //键盘输入三十个成绩求全班30同学的平均分与最高分,总分
void main()
{
int i;
float high = 0, sum = 0, average = 0, score = 0;

for(i=0;i<=30;i++)
{
scanf("%f",&score);
sum=sum+score;
if(score>high) high = score;
}
average=(float)(sum/30);

printf("总成绩=%f",sum);
printf("平均分=%f",average);
printf("最高分=%f",high);
}

满意请采纳

回答2:

#include //键盘输入三十个成绩求全班30同学的平均分与最高分,总分
void main()
{
int high=0,i,sum=0;
float average,score;

for(i=0;i<=30;i++);
{
scanf("%d",&score);//输入时格式错误了
sum=sum+score;
if(score>high) score=high;
}
average=(float)(sum/30);

printf("总成绩=%d",sum);
printf("平均分=%f",average);
printf("最高分=%d",high);
}