c语言本题要求编写程序,根据输入学生的成绩,统计并输出学生的平均成绩、最高成绩和最低成绩。建议使用动态内存分配来实现。
时间: 2023-12-11 14:33:47 浏览: 268
以下是C语言实现根据输入学生的成绩,统计并输出学生的平均成绩、最高成绩和最低成绩的程序,使用动态内存分配来实现:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n; // 学生人数
printf("请输入学生人数:");
scanf("%d", &n);
int *scores = (int *)malloc(n * sizeof(int)); // 动态分配数组存储学生成绩
int sum = 0; // 总成绩
int max_score = 0; // 最高成绩
int min_score = 100; // 最低成绩,初始化为100,因为成绩范围在0-100之间
for (int i = 0; i < n; i++) {
printf("请输入第%d个学生的成绩:", i + 1);
scanf("%d", &scores[i]);
sum += scores[i];
if (scores[i] > max_score) {
max_score = scores[i];
}
if (scores[i] < min_score) {
min_score = scores[i];
}
}
printf("平均成绩为:%.2f\n", (float)sum / n);
printf("最高成绩为:%d\n", max_score);
printf("最低成绩为:%d\n", min_score);
free(scores); // 释放动态分配的数组内存
return 0;
}
```