C语言 12位评委采用百分制计分,规则是去掉一个最高分,去掉一个最低分,再取平均分。编程,输入各评

2025-03-07 08:31:52
推荐回答(4个)
回答1:

首先,说一下这个问题的解题思路,首先,考虑到要使用最高分,最低分,所以
第一步是找出最高分,最低分,
然后将所有分数相加,
第三步,去掉一个最高分一个最低分,
最后将总分除以10,得到结果
,在这里我将给出实例,采用控制台进行人机交互,具体的算法可以拷贝到其他框架中。

#include
#include

int main( int argc, char **argv )
{
int point[12];

int i=0;
while( i<12 )
{
printf("请输入第%d个分数\n",i+1);
scanf("%d",&point[i]);
i+=1;
}

int min=point[0],max=point[0];
for(i=0;i<12;i+=1)
{
if(point[i]>max) max=point[i];
if(point[i] printf("%d ",point[i]);
}
double all=0.0f;
for(i=0;i<12;i+=1)
all+=point[i];
all=(all-max-min)/10;
printf("最高分:%d 最低分:%d 最后得分:%f\n",max,min,all);
getchar();
getchar();
}

回答2:

这个逻辑很简单嘛。一个数组存12位评为打分。for循环遍历数组找出最高分max和最低分min,并对数组元素求和sum,最后平均分average = (sum -max-min)/10
因为你没奖励财富值,给你个思路,代码自己敲哈。学习编程就要多敲代码

回答3:

#include
void main()
{
int i,j;
float a[12],avg,t,s=0;
printf("请输入12个分数");
for(i=0;i<12;i++)
scanf("%f",&a[i]);
for(i=0;i<12;i++)
{
for(j=0;j<12-i;j++)
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
for(i=0;i<12;i++)
{
a[0]=0;
a[11]=0;
s=s+a[i];
}
avg=s/12;
printf("去掉最高分与最低分后平均分为%f",avg);
}
楼主,我也刚学,我觉得这种简单的,你应该学会自己去打,然后不懂的来问。希望你可以改改

回答4:

不会