本题要求编写C语言程序,根据输入学生的成绩,统计并输出学生的平均成绩、最高成绩和最低成绩。建议使用动态内存分配来实现。
时间: 2023-12-11 13:06:43 浏览: 145
以下是一个简单的 C 语言程序,用于计算学生的平均成绩、最高成绩和最低成绩。它使用动态内存分配来存储输入的成绩。
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n; // 学生数量
float *grades; // 成绩数组
float sum = 0, max = 0, min = 100;
printf("请输入学生数量:");
scanf("%d", &n);
// 动态分配成绩数组
grades = (float*) malloc(n * sizeof(float));
// 输入成绩并计算总分、最高分和最低分
for (int i = 0; i < n; i++) {
printf("请输入第%d个学生的成绩:", i+1);
scanf("%f", &grades[i]);
sum += grades[i];
if (grades[i] > max) {
max = grades[i];
}
if (grades[i] < min) {
min = grades[i];
}
}
// 输出结果
printf("平均成绩:%f\n", sum / n);
printf("最高成绩:%f\n", max);
printf("最低成绩:%f\n", min);
// 释放动态分配的内存
free(grades);
return 0;
}
```
在上面的程序中,我们首先读取学生数量,然后使用 `malloc()` 函数动态分配一个大小为 `n * sizeof(float)` 的成绩数组。接下来,我们使用一个循环来提示用户输入每个学生的成绩,并计算总分、最高分和最低分。最后,我们输出平均成绩、最高成绩和最低成绩,并使用 `free()` 函数释放动态分配的内存。
请注意,此程序没有对输入的数据进行任何错误检查。在实际应用中,您应该始终检查用户输入的数据是否有效,并采取适当的措施处理无效数据。
阅读全文