5位评委给三位选手评分,以平均分计算每位选手的最终成绩,请你编程实现该比赛评分系统。要求每位选手都有自己的编号(手动输入),每位评委的评分手动输入
需要根据平均分排序吗,如果需要排序,就把下面代码中的注释取消就可以了。
无需排序的运行结果:
代码:
#include <stdio.h>
#define MAXNMB 3
int main()
{
int a[MAXNMB][5]; //选手成绩
int id[MAXNMB]; //选手编号
float av[MAXNMB],t;//记录选手平均分
int i,j,n,k;
for(i=0;i<MAXNMB;i++)
{
printf("请输入选手编号:");
scanf("%d",&id[i]);
printf("请输入5位评委对选手%d的评分:",id[i]);
av[i] = 0;
for(j=0;j<5;j++)
{
scanf("%d",&a[i][j]);
av[i] += a[i][j];
}
av[i] = av[i]/5.0; //计算平均分
}
//根据平均分排序,如果需要排序,就把下面的注释取消掉
/*
for (i=0;i<MAXNMB-1;i++)
{
for(j=0;j<MAXNMB-1-i;j++)
{
if(av[j] < av[j+1])
{
//交换id
n = id[j];
id[j] = id[j+1];
id[j+1] = n;
//交换数组
for(k = 0;k<5;k++)
{
n = a[j][k];
a[j][k] = a[j+1][k];
a[j+1][k] = n;
}
//交换平均值
t = av[j];
av[j] = av[j+1];
av[j+1] = t;
}
}
}*/
//输出结果
for(i = 0;i<MAXNMB;i++)
{
printf("选手:%d 得分:",id[i]);
for(j=0;j<5;j++)
printf("%d ",a[i][j]);
printf(",平均分:%f\n",av[i]);
}
return 0;
}
#include<stdio.h>
int main()
{
int a,b,c,d,e;
int n;//选手人数
int sum[3],id[3];
double ave[3]; //平均分
for (int i = 0; i < 3; i++)
{
printf("请输入第%d名选手的编号:",i+1);
scanf_s("%d", &id[i]);
printf("请输入第%d名的分数(空格隔开):", i + 1);
scanf_s("%d %d %d %d %d", &a, &b, &c,&d,&e);
sum[i] = a + b + c+d+e;
}
for(int i=0;i<2;i++)
for(int j=0;j<2-i;j++)
if (sum[j] < sum[j + 1])
{
int temp;
temp = sum[j];
sum[j] = sum[j + 1];
sum[j + 1] = temp;
temp = id[j];
id[j] = id[j + 1];
id[j + 1] = temp;
}
for (int i = 0; i < 3; i++)
ave[i] = (double)sum[i] / 5;
for (int i = 0; i < 3; i++)
printf("第%d名:编号%d,平均分数:%f\n",i+1,id[i],ave[i]);
return 0;
}