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

完成一个对候选人得票的统计程序。假设有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;
}

你这写的挺乱
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),不能用=,要用==,这才是判断是否相等

char name; 改成char name[20];
if (strcmp(a[0].name, b) = 0) 改成 if (strcmp(a[0].name, b) == 0)