那位C高手来帮我解决下问题(不要其他语言的方法)

来源:百度知道 编辑:UC知道 时间:2024/05/16 14:24:33
功能概述
用C 语言编写函数,实现大赛现场统分功能。
某大奖赛有n 个选手参赛(1<n<10),5 个评委为依次参赛的选手评判打分:最低分0
分,最高分5 分。统分规则为:每个选手所得的5 个评分中,去掉一个最高分,去掉一个最
低分,剩余分数之和为该选手的最后得分。最后输出本次大赛的最高分。
要求:1、用结构体定义每个选手的编号、5 个评分和最后得分
2、从键盘输入参赛选手人数(1<n<10)
3、比较并输出本次大赛的最高分,要求写入函数fun()中
参考
实现步骤
1、 调用头文件stdio.h
2、 定义结构体
struct player
{ int sort; //每位选手的编号
int score[5]; //每位选手的5 个得分
int scoresum; //每位选手的最后得分
}player[9];
3、 声明fun 函数
void fun(struct player player[9], int n);
4、 创建主函数
􀂾 定义相关变量
􀂾 输出提示语句,输入参赛选手人数n 的值
􀂾 为每位参赛选手的编号赋值
(提示:选手编号可表示为player[i].sort)
􀂾 输出提示语句,输入每位选手的得分
(提示:选手得分可表示为player[i].score[j])
􀂾 判断出最高分、最低分,并输出
􀂾 累计5 个得分之和,减去最高分、最低分,统计出每位选手的最后得分,赋给
player[i].scoresum,并输出
􀂾 调用fun 函数,输出大赛最高分
fun(player,n);
5、 定义fun 函数,比较每位选手的最后得分,输出本次大赛的最高分
注意事项
1、 注意在代码中添加必要的注释,注意代码的书写、命名符合规范。
2、 考试最终提交:源代码文件。

#include <stdio.h>
struct play
{
int sort; //每位选手的编号
int score[5]; //每位选手的5 个得分
int scoresum; //每位选手的最后得分
};
void fun(struct play player[10], int n);

void main()
{
struct play player[10];
int i,j,k,temp,n,a;
printf("input n(1<n<10)\n");
scanf("%d",&n);
for(i=1;i<n+1;i++)
{
printf("input No of player%d\n",i);
scanf("%d",&player[i].sort);
for(j=0;j<5;j++)
{
printf("input score%d of player%d\n",j+1,i);
scanf("%d",&a);
if(a>=0&&a<=5)
player[i].score[j]=a;
else
{
j--;
printf("the value is between 0 to 5,input again!\n");
}
}
for(k=1;k<5;k++)//用冒泡法排序
{
for(j=0;j<5-k;j++)
{
i