作业帮 > 综合 > 作业

C语言,去掉最高分和最低分,求平均分问题

来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/06/17 07:05:01
C语言,去掉最高分和最低分,求平均分问题
评委给选手(多个选手)评分,去掉一个最高分和一个最低分,求选手最终的平均分第一行输入一个T,代表有T组测试数据,T
C语言,去掉最高分和最低分,求平均分问题
#include<stdio.h>
int main()
{
\x09int t,n,i,k,a,max,min;
\x09float s;
\x09scanf("%d",&t);

\x09for(a=1;a<=t;a++)
\x09{
\x09\x09max=0;\x09s=0;
\x09\x09min=100;
\x09\x09scanf("%d",&n);
\x09\x09for(i=1;i<=n;i++)
\x09\x09{
\x09\x09\x09scanf("%d",&k);
\x09\x09\x09if(k>=max) max=k;
\x09\x09\x09if(k<=min) min=k;
\x09\x09\x09s=s+k;
\x09\x09}
\x09\x09s=s-max-min;
\x09\x09n=n-2;
\x09\x09s=s/n;
\x09\x09printf("%.2f\n",s);
\x09}
\x09return 0;
} //把s和n写在for循环里
再问: 弱弱地问一下,为什么需要把n放到第一个for循环里?
再答: 因为你要输入两组数据,你第二组的n值可能和第一组不同,当然你也可以放在外面,那样你把 n=n-2; s=s/n; 修改为 s=s/(n-2);从而达到不修改n值的目的 这时只输入一次n值 望采纳