有十个评委打分,评委输入分数,比平均分高的就输出 c语言
时间: 2024-10-14 09:16:21 浏览: 30
在C语言中,你可以通过以下几个步骤实现这个功能:
1. 首先,创建一个数组或者动态内存来存储所有评委的分数。例如,你可以使用`float`类型的数组,大小等于评委人数。
```c
float scores[10]; // 假设总共有10位评委
```
2. 然后,编写一个循环让每个评委输入他们的评分,并存储到数组中。
```c
for (int i = 0; i < 10; i++) {
scanf("%f", &scores[i]);
}
```
3. 计算平均分,这通常是将所有分数相加然后除以评委数。
```c
float sum = 0;
for (int i = 0; i < 10; i++) {
sum += scores[i];
}
float average = sum / 10;
```
4. 接下来,遍历数组,找出高于平均分的分数并输出。可以使用另一个循环,检查每个分数是否大于平均分。
```c
for (int i = 0; i < 10; i++) {
if (scores[i] > average) {
printf("评委 %d 的分数 %f 超过平均分 %f\n", i + 1, scores[i], average);
}
}
```
5. 最后,别忘了处理可能出现的浮点数比较误差。通常的做法是使用一个小范围(如 `eps`)来判断分数是否足够接近平均值。
完整代码示例:
```c
#include <stdio.h>
#define NUM_JUDGES 10
#define EPSILON 0.001
int main() {
float scores[NUM_JUDGES];
float sum = 0, average;
// 输入分数
for (int i = 0; i < NUM_JUDGES; i++) {
scanf("%f", &scores[i]);
sum += scores[i];
}
average = sum / NUM_JUDGES;
// 输出高于平均分的分数
for (int i = 0; i < NUM_JUDGES; i++) {
if (fabs(scores[i] - average) <= EPSILON && scores[i] > average) {
printf("评委 %d 的分数 %f 超过平均分 %f\n", i + 1, scores[i], average);
}
}
return 0;
}
```
阅读全文