输出学生成绩(动态分配):输入学生人数后输入每个学生的成绩,最好输出 学生的平均成绩,最高成绩和最低成绩。要求使用动态内存分配来实现。试编写相 应程序
时间: 2024-04-10 22:27:51 浏览: 120
C语言输入学生成绩,计算并输出这些学生的最低分、最高分、平均分。
下面是一个使用动态内存分配来输出学生成绩的示例程序:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int numStudents;
float *grades, avgGrade, maxGrade, minGrade;
printf("请输入学生人数:");
scanf("%d", &numStudents);
// 动态分配内存
grades = (float*) malloc(numStudents * sizeof(float));
// 输入每个学生的成绩
for (int i = 0; i < numStudents; i++) {
printf("请输入第%d个学生的成绩:", i + 1);
scanf("%f", &grades[i]);
}
// 计算平均成绩
float sum = 0;
for (int i = 0; i < numStudents; i++) {
sum += grades[i];
}
avgGrade = sum / numStudents;
// 找到最高成绩和最低成绩
maxGrade = grades[0];
minGrade = grades[0];
for (int i = 1; i < numStudents; i++) {
if (grades[i] > maxGrade) {
maxGrade = grades[i];
}
if (grades[i] < minGrade) {
minGrade = grades[i];
}
}
// 输出结果
printf("学生的平均成绩:%.2f\n", avgGrade);
printf("最高成绩:%.2f\n", maxGrade);
printf("最低成绩:%.2f\n", minGrade);
// 释放内存
free(grades);
return 0;
}
```
这个程序会先要求输入学生人数,然后动态分配足够的内存空间来存储学生成绩。接下来,程序会要求输入每个学生的成绩,并计算平均成绩、最高成绩和最低成绩。最后,程序会输出这些结果,并释放动态分配的内存空间。
阅读全文