一位鹿人 2023-01-09 11:30 采纳率: 85.7%
浏览 44
已结题

C语言学生信息管理系统实现按性别统计时出现问题

编写了genderstat()函数用于实现按性别统计学生信息,该函数可输出男性或女性的学生信息并输出男生/女生人数。但运行时编译器报错,这个该如何解决呢?
报错如下:

img


代码如下:

void genderstat()  //该函数用于实现按性别统计
{
    int i,count=0;  //count变量用于计数
    char gender,c;
    FILE * fp;   //定义一个文件指针fp 
    read();   //读取students文本文件
    printf("请输入要统计的性别(m/f):\n");
    scanf("%c",&gender);
    do{
        if(gender == 'm')
        {
            printf("|#学号\t\t姓名\t性别\t年龄\t数学分析\t高等代数\t程序设计\t大学英语\tGPA\t#|\n");
            for(i = 0;i < n; i++){
                if(strcmp(st[i].gender,'m') == 0)   //比较字符串
                {
                    count++;
                    printf(" %d ", st[i].id);
                    printf("    %-s ", st[i].name);
                    printf("     %-s ", st[i].gender);
                    printf("     %d ", st[i].age);
                    printf("\t%d ", st[i].MathAna);
                    printf("\t\t%d ", st[i].LiAlg);
                    printf("\t\t%d ", st[i].Computer);
                    printf("\t\t%d ", st[i].English);
                    printf("\t\t%.2f \n", st[i].GPA);
                }
            }    
            printf("\n\t\t共%d名男生",count);
        }
        else
        {
            printf("|#学号\t\t姓名\t性别\t年龄\t数学分析\t高等代数\t程序设计\t大学英语\tGPA\t#|\n");
            for(i = 0;i < n; i++){
                if(strcmp(st[i].gender,'f') == 0)   //比较字符串
                {
                    count++;
                    printf(" %d ", st[i].id);
                    printf("    %-s ", st[i].name);
                    printf("     %-s ", st[i].gender);
                    printf("     %d ", st[i].age);
                    printf("\t%d ", st[i].MathAna);
                    printf("\t\t%d ", st[i].LiAlg);
                    printf("\t\t%d ", st[i].Computer);
                    printf("\t\t%d ", st[i].English);
                    printf("\t\t%.2f \n", st[i].GPA);
                }
            }
            printf("\n\t\t共%d名女生",count);
        }
        printf("\n\n\t\t\t\t是否继续该操作(Y/N):"); // 提示是否继续
        scanf("%c", &c);
        c = getchar();
    }while(c == 'Y'||c == 'y');
}

  • 写回答

4条回答 默认 最新

  • lcl1234567 2023-01-09 11:47
    关注

    strcmp第二个参数,字符串要用双引号

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 1月17日
  • 已采纳回答 1月9日
  • 创建了问题 1月9日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度