酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

本题要求编写程序,根据输入学生的成绩,统计并输出学生的平均成绩、最高成绩和最低成绩。建议使用动态内存分配来实现。 输入格式: 输入第一行首先给出一个正整数n,表示学生的个数。接下来一行给出n个学生的成绩,数字间以空格分隔。 输出格式: 按照以下格式输出: average = 平均成绩 max = 最高成绩 min = 最低成绩 结果均保留两位小数。 用c语言

```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点数解答]

相关提问