某学院举行卡拉ok大赛,共有20位选手参赛,10位评委打分。打分的原则是去掉一个最高分,去掉一个最低分,剩下的分数取平均值得到该选手的最终得分。最后将选手得分按高低排序,得分最高的前三名分获冠、亚、季军。根据题目要求设计程序:每个选手演唱结束后,依次输入10位评委的分数,输出“去掉一个最高分 ,去掉一个最低分 ,第X号选手最终得分 ”;待全部选手比赛完毕,输出前三名编号和姓名以及得分。
ps:完成后请将程序发到2955874564@qq.com,应为系统与c++不兼容,希望运行正确,多谢了
用c语言编程求平均分,共有20位选手参赛,10位评委打分,打分的原则是去掉一个最高分,去掉一个最低分
答案:3 悬赏:70 手机版
解决时间 2021-01-24 03:23
- 提问者网友:暮烟疏雨之际
- 2021-01-23 02:55
最佳答案
- 五星知识达人网友:酒安江南
- 2021-01-23 03:04
恩,实在不想打程序,一个一个字母转换麻烦,要是写在纸上倒也罢了,所以只能给点思想。小白的程序哈。
首先scanf语句,依次输入分数,应该设一个数组a,存放10个成绩,然后开始找出最大值和最小值,怎么找呢,思想,单层循环外围设min=max=0 循环里面if a[i]比a[min]小,i重新赋值给min,如果比a[max]大,i赋值给max。此时min和max为最小和最大值的下标,循环结束后,你可以直接设a[min]和a[max]为0就好了。
最后单层循环,求总和,最后除以8.0,应该知道了吧。话说这种程序就是很白的思维啊,你会求最大和最小值就ok了。
首先scanf语句,依次输入分数,应该设一个数组a,存放10个成绩,然后开始找出最大值和最小值,怎么找呢,思想,单层循环外围设min=max=0 循环里面if a[i]比a[min]小,i重新赋值给min,如果比a[max]大,i赋值给max。此时min和max为最小和最大值的下标,循环结束后,你可以直接设a[min]和a[max]为0就好了。
最后单层循环,求总和,最后除以8.0,应该知道了吧。话说这种程序就是很白的思维啊,你会求最大和最小值就ok了。
全部回答
- 1楼网友:蕴藏春秋
- 2021-01-23 05:01
#include<stdio.h>
int s_min(int a[]);
int s_max(int a[]);
main()
{
float a[10],min,max,s=0;//定义一个数组用来存放10个评委的分数。定义的min,max,是用来超查找最高分和最低分的。
int i;
printf("请输入10个评委的分数:\n");
for(i=0;i<10;i++)
scanf("%f",&a[i]);
min=s_min(a);
max=s_max(a);//调用函数找出低分和最高分。
printf("去掉一个最高分%g,去掉一个最低分%g\n",max,min);
for(i=0;i<10;i++)
if(a[i]!=min&&a[i]!=max) //把最高分和最低分不计算进去
s=s+a[i];
printf("最后的得分是%g\n",s/8);
}
float s_min(float a[])
{
int i;
float min=a[0];
for(i=0;i<10;i++)
if(a[i]<min)
min=a[i];
return min;
}
float s_max(float a[])
{
int i;
float max=a[0];
for(i=0;i<10;i++)
if(a[i]>max)
max=a[i];
return max;
}
- 2楼网友:摆渡翁
- 2021-01-23 03:31
评委评分系统这样的系统没有必要用C语言编写吧,用C#或VB.NET这样的开发语言更快更好些。其实也可以直接买现成的系统,象天纵评委评分系统,支持手工打分、电脑打分、无线评分器评分、手机或平板打分,有在线租用,也可以本地安装版本。能满足各种比赛的评委打分。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯