编写一个程序,输入N个学生数据,包括学号、姓名、成绩,要求输出这些学生数据 ,并计算平均分。(通过动态内存分配对象数组测试)
时间: 2024-11-11 08:23:32 浏览: 18
编写一个程序来处理这个问题,我们可以采用C++语言,因为它支持动态内存分配,并且有一个结构体来存储学生的数据。首先,我们需要定义一个`Student`结构体:
```cpp
#include <iostream>
#include <string>
// 定义 Student 结构体
struct Student {
int id;
std::string name;
float score;
};
int main() {
int N; // 学生数量
std::cout << "请输入学生数量(N): ";
std::cin >> N;
// 动态分配内存
Student* students = new Student[N]; // 创建一个大小为N的Student对象数组
// 输入学生信息
for (int i = 0; i < N; i++) {
std::cout << "请输入第 " << (i+1) << " 位学生的信息 (ID, 姓名, 成绩): ";
std::cin >> students[i].id >> students[i].name >> students[i].score;
}
// 输出学生数据
std::cout << "\n学生信息表:\n";
for (int i = 0; i < N; i++) {
std::cout << "ID: " << students[i].id << ", 姓名: " << students[i].name << ", 成绩: " << students[i].score << std::endl;
}
// 计算平均分
float totalScore = 0;
for (int i = 0; i < N; i++) {
totalScore += students[i].score;
}
float averageScore = totalScore / N;
std::cout << "平均分数: " << averageScore << std::endl;
// 释放内存
delete[] students;
return 0;
}
```
在这个程序中,用户会被提示输入学生数量和每位学生的信息,然后程序会显示所有学生的详细信息以及整体的平均分。最后,为了避免内存泄漏,我们记得释放动态分配的内存。
阅读全文