C语言从键盘输入某班学生的信息,包括学号、性别和成绩,以"0 N 0"为结束标志,统计输出男、女生的人数及该班学生的平均成绩
时间: 2024-09-22 07:01:29 浏览: 77
在C语言中,你可以使用循环结构以及数组或者结构体来处理这个问题。下面是一个简单的示例程序,它会提示用户输入学生信息,并通过判断性别来统计男生和女生人数,同时计算平均成绩:
```c
#include <stdio.h>
// 定义一个结构体来存储学生信息
typedef struct {
int id;
char gender; // 'M' for male, 'F' for female
float score;
} Student;
int main() {
Student students[100]; // 假设最多有100名学生
int num_students = 0;
float total_score = 0;
while (1) {
printf("请输入学生信息(学号 M/F 分数,输入0退出): ");
scanf("%d %c %f", &students[num_students].id, &students[num_students].gender, &students[num_students].score);
if (students[num_students].score == 0 && students[num_students].gender == '0') {
break; // 如果输入了0作为结束标志,则跳出循环
}
num_students++;
total_score += students[num_students - 1].score;
}
// 统计男女生人数并计算平均成绩
int male_count = 0, female_count = 0;
for (int i = 0; i < num_students; i++) {
if (students[i].gender == 'M')
male_count++;
else if (students[i].gender == 'F')
female_count++;
// 这里假设输入的数据不会有错误,如果需要可以添加异常检查
}
double average_score = (total_score / num_students);
printf("男生人数: %d\n", male_count);
printf("女生人数: %d\n", female_count);
printf("班级平均成绩: %.2f\n", average_score);
return 0;
}
```
阅读全文