HISIOISIH 发表于 2018-8-15 21:08:00

C语言 投票程序 赋值问题

C语言书上的投票程序   想加上能输出票最多的候选者名字和票数的功能结果一直不成功   票数最多候选人名字一直乱码 改了好长时间 还是不行

觉得注释问号的地方有错   不知道怎么给字符数组name赋字符串求解答

#include<stdio.h>
#include<string.h>

struct person
{
        char name;                                                //候选者
        int count;                                                                //票数
}leader={"jia",0,"na",0,"ya",0};                        //初始化 人名 和 票数

void main()
{
        int i,j,max;
        char name;                                                      //字符数组
        char leader_name;                              // 字符数组
        for(i=0;i<3;i++)
        {
                scanf("%s",leader_name);                     //输入
                for(j=0;j<3;j++)
                {
                        if(strcmp(leader_name,leader[ j ].name)==0)       // 比较是否相同
                        {
                                leader.count++;                                       //相同的话相应票数加1
                        }
                }
        }

        max=leader.count;                                                                //假设最多者为“jia”票数
        *name=leader.name;                                                            //最多者为“jia”       名字(????????????)
        for(i=0;i<3;i++)
        {
                printf("%5s:%d\n",leader[ i ].name,leader[ i ].count);          //输出所有候选人名字 和票数
                if(leader.count>max)                                                   // 分别和''na '' "ya"比较
                {
                        max=leader.count;                                                //票数最多为 max
                        *name=leader.name;                                             //?????????????? (把最多票数的名字给name 一直不对)
                }
        }
        printf("\n最佳候选人:%5s\t\t\t票数:%d\n", name , max);          //输出 票数最多候选人 和 票数
}

无符号整形 发表于 2018-8-15 21:11:00

建议使用strcpy 更好。

HISIOISIH 发表于 2018-8-16 12:22:58

无符号整形 发表于 2018-8-15 21:11
建议使用strcpy 更好。

改好了感谢{:10_298:}
页: [1]
查看完整版本: C语言 投票程序 赋值问题