解题思路:
没啥思路,就按照题目的描述去一步步地求解,编程就是这样,不要被问题字数的多少迷惑了你的双眼,题目本身一大坨,读完题目,我去,我得干这个、这个、还有那个,这么多的问题,从何做起啊!从何下手啊!
编程之前要看大局,但是编程的过程中要看步骤,把大问题分解成一个个的小步骤,我先干这个,再干这个,然后再去干这个,最后干这个,然后写代码时只盯着每一个小步骤,写这个步骤的代码,就不要去想其他步骤的事情,否则你只会越想越多,越想越乱,越想越难,按部就班,逐个击破之就OK。
注意事项:
最后计算平均分时,千万不能除7,要除5,因为7位评委,通过最高最低分已经少了两位了,老铁!
参考代码:
#include <string.h> #include <stdio.h> #include <stdlib.h> #include <math.h> struct grade { float grade[7];//7个评委的分数 char name[30];//选手的姓名 }; int main() { struct grade studentGrade; while (scanf("%f %f %f %f %f %f %f %s", &studentGrade.grade[0], &studentGrade.grade[1], &studentGrade.grade[2], &studentGrade.grade[3], &studentGrade.grade[4], &studentGrade.grade[5], &studentGrade.grade[6], studentGrade.name) != EOF) { //寻找最高、最低分 int max = 0, min = 6; for (int i = 0; i < 7; ++i) { if (studentGrade.grade[i] > studentGrade.grade[max]) { max =i; } if (studentGrade.grade[i] < studentGrade.grade[min]) { min = i; } } //去掉最高分、最低分 studentGrade.grade[max] = 0; studentGrade.grade[min] = 0; //计算总分 float averageGrade = 0.0; for (int j = 0; j < 7; ++j) { averageGrade += studentGrade.grade[j]; } //计算平均分 averageGrade /= 5;//一定要注意,少了两位评委,除得是5,可千万别除7 //输出结果 printf("%s %.2f\n", studentGrade.name, averageGrade); } return 0; }
0.0分
3 人评分
2004年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:488 |
九宫重排 (C++代码)浏览:2195 |
C语言程序设计教程(第三版)课后习题6.1 (C语言代码)浏览:700 |
WU-蓝桥杯算法提高VIP-勾股数 (C++代码)浏览:1685 |
字符逆序 (C语言代码)浏览:645 |
P1000 (C语言代码)浏览:911 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:561 |
A+B for Input-Output Practice (VI) (C语言代码)浏览:575 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:438 |
陶陶摘苹果2 (C语言代码)浏览:650 |