求帮忙用简单的C语言谢谢

 

图片再拍的清楚点,然后上传

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