C语言数组编程

题目内容:
大奖赛现场统分。已知某大奖赛有n个选手参赛,m(m>2)个评委为参赛选手评分(最高10分,最低0分)。统分规则为:在每个选手的m个得分中,去掉1个最高分和1个最低分后,取平均分作为该选手的最后得分。要求编程实现根据n个选手的最后得分,从高到低输出选手的得分名次表,以确定获奖名单。
具体功能为:
1)一二维数组记录每位选手的得分;
2)计算选手的最后得分;
3)获得选手的得分名次表(名次1~n:选手参赛号,选手的最后得分;

输入格式:
输入选手数目,评委人数,数据间隔一个空格,完成后换行;
输入每位选手的m个得分后换行,数据间隔一个空格

输出格式:
最后得分保留两位小数,每个记录占一行
数据间隔3个空格键,每个功能间空一行:

输入样例:
5 6
1:7 8 7 7 8 9
2:7 7 8 9 8 7
3:8 8 8 9 8 9
4:7 8 7 7 6 7
5:9 9 9 9 10 9

输出样例:
1 7.50
2 7.25
3 8.25
4 7.00
5 9.00
1 5 9.00
2 3 8.25
3 1 7.50
4 2 7.25
5 4 7.00

程序运行结果:

制作流程:

    输入分数

    找到最高分和最低分

    去掉最高分和最低分

    求出平均分

    平均分派排名

    按要求输出信息

完整源码如下:

#include  <stdio.h>
#include  <stdlib.h>
int score[100][100]; //最大选手和评委数
float scoreLast[100]; //最后得分
float sortTemp[100];
int MaxScore[100];
int MinScore[100];
int main()
{
int n = 0;
int m = 0;
int i = 0;
int j = 0;
int k = 0;
//1.输入分数
scanf("%d%d", &n, &m);
for (i = 0; i < n; i++)
{
printf("%d: ", i+1);
for (j = 0; j < m; j++)
{
scanf("%d", &score[i][j]);
}
}
//2.找到最高分和最低分
for (i = 0; i < n; i++)
{
MaxScore[i] = MinScore[i] = 0;
for (j = 0; j < m; j++)
{
if (score[i][j]>MaxScore[i])
MaxScore[i] = score[i][j];
if (score[i][j] < MinScore[i])
MinScore[i] = score[i][j];
}
}
printf("C/C++学习乐园:");
//3.去掉最高分和最低分-->747821062
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
if (score[i][j] == MaxScore[i] || score[i][j] == MinScore[i])
{
for (k = j; k < m; k++)
{
score[i][k] = score[i][k + 1];
}
}
}
}
//求出平均分
for (i = 0; i < n; i++)
{
scoreLast[i] = 0;
for (j = 0; j < m-2; j++)
{
scoreLast[i] += score[i][j];
}
scoreLast[i] /= (float)(m-2);
sortTemp[i] = scoreLast[i];
}
for (i = 0; i < n; i++)
{
printf("%d\t%0.2f\n", i + 1, scoreLast[i]);
}
//排名
for (i = 0; i < n; i++)
{
for (j = 0; j < n - i-1; j++)
{
if (sortTemp[j]<sortTemp[j + 1])
{
float temp = sortTemp[j];
sortTemp[j] = sortTemp[j+1];
sortTemp[j + 1] = temp;
}
}
}
for (i = 0; i < n; i++)
{

int sortPos = 0;
for (j = 0; j < n; j++)
{
if (scoreLast[j] == sortTemp[i])
sortPos = j;
}
printf("%d\t%d\t%0.2f\n", i + 1,sortPos+1,sortTemp[i]);
}
system("pause");
return 0;
}

追问

输出样例好像不对啊

追答

格式嘛?

基本流程就是这样,可能数据输入有问题

温馨提示:答案为网友推荐,仅供参考
相似回答