是关于歌手评分系统的!
9个评委,10个选手
主函数下面要求有4个函数调用
包括:
1 输入评委分数
2 计算平均分(要求去掉一个最高分和一个最低分)
3 排序
4 输出结果
结果显示的时候要求有
1 名次
2 选手序号或姓名
3 最后得分
运用指针 数组 和结构体
上面的是要求.
#include <stdio.h>
struct singer
{
int num;
// char name[10];
float score;
}singers[10];
//记录评委分
float scores[9];
void inputscores(int i)
{
printf("请给第%d位选手打分\n",i+1);
//读入九个分数,自己改改
scanf("%f",scores)
}
void jisuan(int i)
{
//找出最大,最小分
int j=0;
float s1=scores[0],s2=scores[0],temp=0;
while(j<9)
{
if(scores[j]>s1)s1=scores[j];
if(scores[j]<s2)s2=scores[j];
}
j=0;
while(j<9){temp+=scores[j];}
temp=temp-2*s1-2*s2;
singers[i].num=i;
singers[i].score=temp/7;
}
void paixu()
{//用最简单的排序
struct singer temp;
int i,j;
while(i<10)
{j=i;
while(j<10){
if(singers[i].score<singers[j].score){temp=singers[i];singers[i]=singers[j];singers[j]=temp;}
j++;
}
i++;
}
}
void outputresult()
{int i=0;
while(i<10){printf("%d\n%d\n%f"),i+1,singers[i].num,singers[i].score}
}
void main()
{
int i=0;
while(i<10)
{
inputscores(i);
jisuan(i);
}
paixu();
outputresult();
}
大家看哪写错了,告诉小弟!谢谢!