图片再拍的清楚点,然后上传
typedef struct _PLAYER
{
char name[20];
float score[7];
float maxScore;
float minScore;
float avg;
}PLAYER;
void main()
{
PLAYER players[10];
int i,j;
for(i=0;i<10;i++)
{
printf("输入%d号选手姓名:",i+1);
scanf("%s",players[i].name);
printf("输入%d号选手的评委打分:",i+1);
float sum = 0;
for(j=0;j<7;j++)
{
scanf("%f",&players[i].score[j]);
if(j==0)
{
players[i].minScore = players[i].score[0];
players[i].maxScore = players[i].score[0];
}
else
{
if(players[i].minScore > players[i].score[j])
players[i].minScore = players[i].score[j];
if(players[i].maxScore < players[i].score[j])
players[i].maxScore = players[i].score[j];
}
sum += players[i].score[j];
}
players[i].avg = (sum - players[i].minScore - players[i].maxScore)/5;
printf("\n");
}
//
for(i=0;i<10;i++)
{
for(j=0;j<9-i;j++)
{
if(players[j].avg < players[j+1].avg)
{
PLAYER p = players[j];
players[j] = players[j+1];
players[j+1] = p;
}
}
}
//
printf("排名如下:\n");
for(i=0;i<10;i++)
{
printf(players[i].name);
printf("\n");
}
}
定义一个二维数组a[10][10],行表示10个选手,列表示7个裁判,每个选手的最高分,最低分,总分,然后就是循环去录成绩。
代码及效果图如下,如有帮助,请采纳yi一下,谢谢。
效果图:
代码:
#include <stdio.h>
struct Signer
{
char name[20]; //歌手名称
float score[7]; //歌手成绩
float max; //最高分
float min; //最低分
float sum; //总分
float avg; //歌手的平均分
};
int main()
{
Signer ss[10];
Signer tmp;
int i = 0,j = 0;
printf( "请输入10名歌手的名字\m");
for ( i = 0; i < 10; i++)
{
gets(ss[i].name);
}
printf("请输入每个学员的成绩\n");
for ( i = 0;i < 10; i++)
{
ss[i].sum = 0.0;
printf("%s :", ss[i].name);
for(j = 0; j < 7; j++)
{
scanf("%f",&ss[i].score[j]);
ss[i].sum += ss[i].score[j];
if (j == 0)
{
ss[i].max = ss[i].score[0];
ss[i].min = ss[i].score[0];
}else
{
if(ss[i].score[j] > ss[i].max)
ss[i].max = ss[i].score[j];
if(ss[i].score[j] < ss[i].min)
ss[i].min = ss[i].score[j];
}
}
ss[i].avg = (ss[i].sum - ss[i].max - ss[i].min) / 5.0;
}
for (i = 0; i < 9; i++)
{
for (j = 0; j < 9-i; j++)
{
if (ss[j].avg < ss[j+1].avg)
{
tmp = ss[j];
ss[j] = ss[j+1];
ss[j+1] = tmp;
}
}
}
for (i = 0; i < 10; i++)
{
printf("%s : 最高分:%.2f 最低分:%.2f 平均分:%.2f\n",ss[i].name,ss[i].max,ss[i].min,ss[i].avg);
}
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632