```c #include <stdio.h> #include <stdlib.h> int main() { int n; printf("请输入学生个数:"); scanf("%d", &n); // 读取学生个数 float *scores = (float *)malloc(n * sizeof(float)); // 动态分配内存 printf("请输入%d个学生的成绩:\n", n); for (int i = 0; i < n; i++) { scanf("%f", &scores[i]); // 读取每个学生的成绩 } float sum = 0, max = scores[0], min = scores[0]; for (int i = 0; i < n; i++) { sum += scores[i]; // 累加成绩 if (scores[i] > max) { max = scores[i]; // 更新最高成绩 } if (scores[i] < min) { min = scores[i]; // 更新最低成绩 } } float average = sum / n; // 计算平均成绩 printf("average = %.2f\n", average); printf("max = %.2f\n", max); printf("min = %.2f\n", min); free(scores); // 释放动态分配的内存 return 0; } ``` 额外注意点: 1. 输入学生个数和成绩时,要确保输入的是有效的数字。 2. 动态分配内存后,使用完毕一定要记得释放,否则会造成内存泄漏。 3. 在计算平均成绩、比较最大最小成绩时,要注意数据类型的精度问题。 [2024-12-12 00:34:46 | AI写代码神器 | 374点数解答]