用所学过的指针知识,编写一个竞赛评分程序。(设有3位选手,5位评委)。输入包括选手的姓名(以单个字符表示)以及5位评委的分数(为0-100的正整数),评分规则为每位选手的成绩为去掉最高分和最低分后再取平均。要求用二维数组来设计程序。输出的格式为“排序 姓名 平均分 最高分 最低分”,要求由高到低对平均分排序,平均分保留2位小数。如下所示:
No name avg max min
1 c 82.33 99 66
2 b 80.12 92 70
3 a 80.11 98 60
![](https://profile-avatar.csdnimg.cn/e1edba6af1d04f88aebff04fb1a71d74_yygsjsjsses.jpg!4)
C语言编程!跪求!谢谢大佬!输出就是下面的形式的
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- threenewbee 2020-05-21 09:56关注
问题解决的话,请点采纳
// Q1073621.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <stdio.h> void swap(int * a, int * b) { int t = *a; *a = *b; *b = t; } int main() { int score[3][5]; char names[3][100]; int max[3]; int min[3]; double avg[3]; int order[3]; for (int i = 0; i < 3; i++) { printf("请输入第%d位选手姓名:", i + 1); scanf("%s", &names[i][0]); for (int j = 0; j < 5; j++) { printf("请输入第%d位评委对第%d位选手的打分:", j + 1, i + 1); scanf("%d", &score[i][j]); } order[i] = i; int sum = score[i][0]; max[i] = min[i] = sum; for (int j = 1; j < 5; j++) { sum += score[i][j]; if (max[i] < score[i][j]) max[i] = score[i][j]; if (min[i] > score[i][j]) min[i] = score[i][j]; } avg[i] = (sum - max[i] - min[i]) / 3.0; } if (avg[order[0]] < avg[order[1]]) { swap(&order[0], &order[1]); } if (avg[order[1]] < avg[order[2]]) { swap(&order[1], &order[2]); } if (avg[order[0]] < avg[order[1]]) { swap(&order[0], &order[1]); } printf("No\tname\tavg\tmax\tmin\n"); for (int i = 0; i < 3; i++) { int j = order[i]; printf("No.%d\t%s\t%.2lf\t%d\t%d\t\n", i + 1, names[j], avg[j], max[j], min[j]); } return 0; }
请输入第1位选手姓名:a
请输入第1位评委对第1位选手的打分:100
请输入第2位评委对第1位选手的打分:92
请输入第3位评委对第1位选手的打分:87
请输入第4位评委对第1位选手的打分:91
请输入第5位评委对第1位选手的打分:99
请输入第2位选手姓名:b
请输入第1位评委对第2位选手的打分:72
请输入第2位评委对第2位选手的打分:64
请输入第3位评委对第2位选手的打分:100
请输入第4位评委对第2位选手的打分:100
请输入第5位评委对第2位选手的打分:55
请输入第3位选手姓名:c
请输入第1位评委对第3位选手的打分:79
请输入第2位评委对第3位选手的打分:83
请输入第3位评委对第3位选手的打分:91
请输入第4位评委对第3位选手的打分:91
请输入第5位评委对第3位选手的打分:98
No name avg max min
No.1 a 94.00 100 87
No.2 c 88.33 98 79
No.3 b 78.67 100 55
Press any key to continue . . .本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用 4
悬赏问题
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错
- ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
- ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
- ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
- ¥50 如何openEuler 22.03上安装配置drbd
- ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
- ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
- ¥15 Windows11, backspace, enter, space键失灵