本题要求编写程序,根据输入学生的成绩,统计并输出学生的平均成绩、最高成绩和最低成绩。建议使用动态内存分配来实现。
时间: 2023-06-10 19:09:15 浏览: 640
C语言输入学生成绩,计算并输出这些学生的最低分、最高分、平均分。
好的,下面是一个使用动态内存分配的C++程序,可以实现您的需求:
```c++
#include <iostream>
using namespace std;
int main() {
int n; // 学生人数
float *grades; // 成绩数组指针
float sum = 0, max = 0, min = 100; // 总成绩、最高分、最低分
// 输入学生人数
cout << "请输入学生人数:";
cin >> n;
// 动态分配成绩数组内存
grades = new float[n];
// 输入每个学生的成绩,并统计总成绩、最高分、最低分
for (int i = 0; i < n; i++) {
cout << "请输入第" << i+1 << "个学生的成绩:";
cin >> grades[i];
sum += grades[i];
if (grades[i] > max) max = grades[i];
if (grades[i] < min) min = grades[i];
}
// 计算平均分
float avg = sum / n;
// 输出结果
cout << "平均成绩为:" << avg << endl;
cout << "最高成绩为:" << max << endl;
cout << "最低成绩为:" << min << endl;
// 释放动态分配的内存
delete[] grades;
return 0;
}
```
程序先通过 `cin` 输入学生人数,然后使用 `new` 动态分配一个长度为 `n` 的 `float` 数组,用来保存每个学生的成绩。接着,通过循环输入每个学生的成绩,并同时计算总成绩、最高分和最低分。最后,计算平均分并输出结果。最后,使用 `delete[]` 释放动态分配的内存。
注意,本程序没有进行输入数据的合法性检查,如果输入的数据不符合要求,程序可能会出现错误。
阅读全文