_Phoebe__ 2021-12-25 22:33 采纳率: 96.9%
浏览 45
已结题

结构体问题 编译通过不了 不知道怎么改

完成一个对候选人得票的统计程序。假设有3个候选人,名字分别为Li,Zhang和Fun。使用结构体存储每一个候选人的名字和得票数。记录每一张选票的得票人名,输出每个候选人最终的得票数。在主程序main()中,输入总票数n,以后的n行中每行输入一个字符串为一个人名,表明对应的得票人。保证每个人名都是Li,Zhang和Fun其中的一个。

Sample Input
10
Li
Zhang
Fun
Zhang
Zhang
Zhang
Li
Li
Zhang
Fun
Sample Output
Li: 3 tickets
Zhang: 5 tickets
Fun: 2 tickets


#include<stdio.h>
#include<string.h>
struct student{
    char name;
    int m;
};
int main(){
    char b[100];
    struct student a[3]={{"Li",0},{"Zhang",0},{"Fun",0}};//结构体初始化 
    printf("请输入总票数");
    int n,i;
    scanf("%d",&n);
    printf("请输入每一票投给的同学");
    for(i=0;i<n;i++){
        scanf("%d",b);
        if(strcmp(a[0].name,b)=0)
        a[0].m++;
        if(strcmp(a[0].name,b)=0)
        a[1].m++;
        if(strcmp(a[0].name,b)=0)
        a[2].m++;
    }
    for(i=0;i<3;i++){
        printf("%s %d tickets",a[i].name,a[i].m);
    }
    return 0;
}
  • 写回答

2条回答 默认 最新

  • CSDN专家-link 2021-12-25 22:51
    关注

    你这写的挺乱
    char name改为char name[20]
    if(strcmp(a[0].name,b)=0) 这句就太混乱了,你到底要比较什麽呢???
    这里b应该是定义成字符串啊,因为你输入的是同学名字,定义为char b[20],然后用scanf("%s",b);进行输入,比较语句改为:
    if(strcmp(a[0].name,b) == 0),不能用=,要用==,这才是判断是否相等

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

报告相同问题?

问题事件

  • 系统已结题 1月2日
  • 已采纳回答 12月25日
  • 创建了问题 12月25日

悬赏问题

  • ¥30 关于用python写支付宝扫码付异步通知收不到的问题
  • ¥50 vue组件中无法正确接收并处理axios请求
  • ¥15 隐藏系统界面pdf的打印、下载按钮
  • ¥15 MATLAB联合adams仿真卡死如何解决(代码模型无问题)
  • ¥15 基于pso参数优化的LightGBM分类模型
  • ¥15 安装Paddleocr时报错无法解决
  • ¥15 python中transformers可以正常下载,但是没有办法使用pipeline
  • ¥50 分布式追踪trace异常问题
  • ¥15 人在外地出差,速帮一点点
  • ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改