班级男生人数和女生人数该怎么统计呀,女生人数的代码是错误的(标签-C语言)

img


C语言。班级男生人数和女生人数该怎么统计呀,我的这个统计男生,女生人数的代码是错误的。有没有人给解决一下呀

【以下回答由 GPT 生成】

问题是在统计女生人数的部分。根据代码,我们假设性别用0表示男性,1表示女性。然而,在统计女生人数时,代码却检查了students[i].gender == 1,这是错误的。应该检查students[i].gender == 0才是正确的。

为了解决这个错误,我们需要做以下更改:

// 统计男女人数
for (int i = 0; i < numstudents; i++) {
    if (students[i].gender == 0) {
        numMales++;
    }
    else if (students[i].gender == 1) {
        numFemales++;
    }
}

students[i].gender == 1改为students[i].gender == 0

修改后的代码如下:

void statistics() {
    int numMales = 0;
    int numFemales = 0;
    int classCounts[MAX_STUDENTS];
    memset(classCounts, 0, sizeof(classCounts));

    for (int i = 0; i < numstudents; i++) {
        if (students[i].classID < 1 || students[i].classID > MAX_STUDENTS) {
            printf("班级信息错误,请重新输入学生信息!\n");
            return;
        }

        if (students[i].classID > 0) {
            classCounts[students[i].classID - 1]++;
        }
    }

    // 统计男女人数
    // 假设性别用0表示男性,1表示女性
    for (int i = 0; i < numstudents; i++) {
        if (students[i].gender == 0) {
            numMales++;
        }
        else if (students[i].gender == 1) {
            numFemales++;
        }
    }

    // 输出统计结果
    printf("班级人数统计:\n");
    for (int i = 0; i < MAX_STUDENTS; i++) {
        if (classCounts[i] > 0) {
            printf("班级 %d 人数: %d\n", i+1, classCounts[i]);
        }
    }

    printf("男生人数: %d\n", numMales);
    printf("女生人数: %d\n", numFemales);
}

这样就可以正确计算女生人数了。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

没有问题啊,你把整个程序截图给我

整个代码贴出来