_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日

悬赏问题

  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名