用c语言求出n个学生一门课程中的最高成绩和最低成绩及高于平均成绩的人数
时间: 2024-11-30 10:18:12 浏览: 8
在C语言中,你可以通过以下几个步骤来计算n个学生一门课程中的最高、最低成绩以及高于平均成绩的学生人数:
1. **初始化变量**:
- 初始化一个数组`score[n]`存储每个学生的成绩。
- 初始化两个变量`max_score`, `min_score`分别记录最高分和最低分,假设初始值都为第一个学生的成绩。
- 初始化一个整数变量`count`,用于记录高于平均分的学生人数,开始设为0。
2. **读取输入**:
- 使用循环结构,从用户那里获取每个学生的分数并存入数组`score`。
3. **更新最高分和最低分**:
- 遍历数组,每当遇到比当前`max_score`大的分数就更新`max_score`,遇到比`min_score`小的分数则更新`min_score`。
4. **计算平均分**:
- 计算所有分数的总和,除以学生总数n,得到平均分`avg_score`。
5. **判断高于平均分的学生**:
- 再次遍历数组,如果某学生的分数大于`avg_score`,将`count`加一。
6. **输出结果**:
- 循环结束后,输出最高分`max_score`,最低分`min_score`,以及高于平均分的学生数`count`。
以下是示例代码片段:
```c
#include <stdio.h>
int main() {
int n, i;
float score[n], max_score = score[0], min_score = score[0];
float sum = 0.0, avg_score;
int count = 0;
printf("请输入学生人数:");
scanf("%d", &n);
// 读取分数并更新最大值和最小值
for (i = 0; i < n; ++i) {
scanf("%f", &score[i]);
if (score[i] > max_score)
max_score = score[i];
if (score[i] < min_score)
min_score = score[i];
sum += score[i];
}
avg_score = sum / n;
// 判断是否高于平均分
for (i = 0; i < n; ++i)
if (score[i] > avg_score)
count++;
printf("最高分:%.2f\n", max_score);
printf("最低分:%.2f\n", min_score);
printf("高于平均分的学生数:%d\n", count);
return 0;
}
```
阅读全文