从键盘输入某班学生的信息,包括学号性别成绩,以“0n0”为结束标志,统计并输出男女生的人数及该班学生的平均成绩
时间: 2025-01-02 11:46:02 浏览: 10
好的,您可以按照以下步骤设计一个程序来实现这个功能:
1. 首先,创建一个结构体或者类来存储学生信息,包含学号(如int类型)、性别(如char类型,比如'm'代表男生,'f'代表女生)和成绩(如float类型)。
```c++
struct Student {
int id;
char gender;
float score;
};
```
2. 创建一个数组或动态列表来存储学生信息,直到遇到"0n0"为止。
3. 使用while循环从键盘接收用户输入,逐个添加到学生数组中。每当输入"0n0"时,跳出循环。
4. 在循环结束后,遍历学生数组,分别计数男生和女生的数量,并计算所有学生的平均成绩。
```c++
#include <iostream>
#include <vector>
int main() {
std::vector<Student> students;
Student temp;
while (true) {
std::cout << "请输入学生信息(学号 m/f 分数,输入0n0退出):";
std::cin >> temp.id >> temp.gender >> temp.score;
if (temp.gender == '0' && temp.score == 'n' && temp.score == '0') break;
students.push_back(temp);
}
int male_count = 0, female_count = 0;
double total_score = 0;
for (const auto &student : students) {
if (student.gender == 'm')
male_count++;
else if (student.gender == 'f')
female_count++;
total_score += student.score;
}
double average_score = total_score / students.size();
std::cout << "男生人数:" << male_count << ", 女生人数:" << female_count << ", 平均成绩:" << average_score << std::endl;
return 0;
}
```
阅读全文