在相声大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。 选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。 例如,输入:100 90 90 80 95 85 87 93 95 88,则应该输出: Canceled max score:100 Canceled min score:80 Average score: 90.375 请改正其中的错误,使其能够计算出正确的结果。 注意:不得增行或者删行,也不得更改程序的结构。 #include <stdio.h> void main( ) { int score,i,max,min; float sum; /********************found****************/ max=100; min=0; sum=0; /********************found****************/ for(i=1;i<10;i++) { printf("Input number %d=",i ); /********************found****************/ scanf("%d",score); /*输入评委的评分*/ sum+=score; /*计算总分*/ if(score>max) max=score; /*通过比较筛选出其中的最高分*/ if(score<min) min=score; /*通过比较筛选出其中的最低分*/ } printf("Canceled max score:%d\nCanceled min score:%d\n",max,min); printf("Average score:%.3f\n",(sum-max-min)/8); }
时间: 2023-06-11 09:05:23 浏览: 235
coding-for-grandpa:为爷爷写一些代码,抓取一些公开的评书、相声、戏剧资源
1. 代码中缺少变量的定义或声明。
2. 代码中缺少输入数据的处理。
3. 代码中计算平均分数的公式有误。
以下是修改后的代码:
#include <stdio.h>
#define N 10
int main()
{
int score[N], i, sum = 0, max = 0, min = 100;
for(i = 0; i < N; i++)
{
scanf("%d", &score[i]);
if(score[i] > max)
max = score[i];
if(score[i] < min)
min = score[i];
sum += score[i];
}
sum = sum - max - min;
printf("Canceled max score:%d\n", max);
printf("Canceled min score:%d\n", min);
printf("Average score:%.3f\n", (float)sum/8);
return 0;
}
阅读全文