a327190489 发表于 2020-11-18 01:13:59

请问一下这个哪里有问题呀

#include <stdio.h>
#include <stdlib.h>
struct vote
{
        char name;
}voter;
int main()
{
       
        int i,sum1=0,sum2=0,sum3=0;
        printf("欢迎来到投票系统:\n");
    for(i=0;i<10;i++)
        {
                printf("请第%d为投票人投出神圣的一票:",i+1);
                scanf("%s",voter.name);
                if((voter.name)=="孙悟空")
                {
                        sum1++;
                }
                if((voter.name)=="猪八戒")
                {
                        sum2++;
                }
                if((voter.name)=="唐僧")
                {
                        sum3++;
                }
        }
        printf("\n\n");
        printf("孙悟空的票数为:%d\n",sum1);
        printf("猪八戒的票数为:%d\n",sum2);
        printf("唐僧的票数为:%d\n",sum3);

}

a327190489 发表于 2020-11-18 01:17:08

这个输入对应名字后所有人的票数还是为0,不知道是什么情况

jackz007 发表于 2020-11-18 01:41:56

                if((voter.name)=="孙悟空")
                {
                        sum1++;
                }
                if((voter.name)=="猪八戒")
                {
                        sum2++;
                }
                if((voter.name)=="唐僧")
                {
                        sum3++;
                }
      改为:
#include <string.h>
. . . . . .
                if(! strcmp(voter . name , "孙悟空")) sum1 ++      ;
                else if(! strcmp(voter . name , "猪八戒")) sum2 ++ ;
                else if(! strcmp(voter . name , "唐僧"))   sum3 ++ ;

a327190489 发表于 2020-11-18 01:45:29

jackz007 发表于 2020-11-18 01:41
改为:

嗯嗯,晓得啦,我写的那种其实比较的是字符串的地址,虽然他们内容相同但是起始地址不一样,所以不相等,比较字符串还得用strcmp()
页: [1]
查看完整版本: 请问一下这个哪里有问题呀