以下是一个用 C++ 实现的程序,用于统计班上学生的信息,并将输入的学生信息倒序输出。 ```cpp #include <iostream> #include <vector> #include <string> // 定义学生结构体 struct Student { int id; // 学号 std::string name; // 姓名 char gender; // 性别 double score; // 成绩 }; int main() { int n; std::cout << "请输入学生的数量: "; std::cin >> n; std::vector<Student> students(n); // 输入学生信息 for (int i = 0; i < n; ++i) { std::cout << "请输入第 " << i + 1 << " 个学生的信息(学号 姓名 性别 成绩): "; std::cin >> students[i].id >> students[i].name >> students[i].gender >> students[i].score; } // 倒序输出学生信息 for (int i = n - 1; i >= 0; --i) { std::cout << "学号: " << students[i].id << ", 姓名: " << students[i].name << ", 性别: " << students[i].gender << ", 成绩: " << students[i].score << std::endl; } return 0; } ``` 代码解释 1. 结构体定义:定义了一个 `Student` 结构体,包含学号、姓名、性别和成绩四个成员。 2. 输入学生数量:通过 `std::cin` 读取学生的数量 `n`。 3. 创建学生向量:使用 `std::vector<Student>` 存储所有学生的信息。 4. 输入学生信息:使用 `for` 循环依次输入每个学生的信息。 5. 倒序输出学生信息:使用 `for` 循环从最后一个学生开始,依次输出每个学生的信息。 额外注意的逻辑点 1. 输入验证:代码没有对用户输入进行验证,例如输入的性别是否合法(一般为 `'M'` 或 `'F'`),成绩是否在合理范围内等。可以添加输入验证逻辑来增强程序的健壮性。 2. 内存管理:使用 `std::vector` 时,不需要手动管理内存,但要注意当学生数量非常大时,可能会占用较多的内存。 3. 输出格式:代码中的输出格式可以根据实际需求进行调整,例如可以使用更美观的表格形式输出。 [2025-07-05 14:12:49 | AI写代码神器 | 589点数解答]