Cy86183570 发表于 2016-11-2 20:41:58

结构体数组问题

#include<stdio.h>
struct depiao
{
        char name;
        int num;
};
void main()
{
        int j,n=0;
        char nam;
        struct depiao person={{"1",0},{"2",0},{"3",0}};
        printf("三个候选人名单:1 2 3\n");
        printf("请输入你心中候选人的名字:");
        while(n<5)
        {
                scanf("%19s",nam);
                if(person.name==nam)
                        person.num++;
                if(person.name==nam)
                        person.num++;
                if(person.name==nam)
                        person.num++;
                n++;
        }
        printf("名字\t\t\t\t得票数\n");
        for(j=0;j<3;j++)
        printf("%19s\t\t\t\t%d\n",person.name,person.num);
}


为什么if语句不执行!!!

椛灬椛落 发表于 2016-11-2 20:58:03

字符串的比较要用strcmp函数。你这样个貌似不行吧

晨念 发表于 2016-11-2 20:59:18

字符串比较不是用等号

Cy86183570 发表于 2016-11-2 21:01:37

知道了,谢谢

Cy86183570 发表于 2016-11-2 21:03:41

椛灬椛落 发表于 2016-11-2 20:58
字符串的比较要用strcmp函数。你这样个貌似不行吧

知道了,谢谢

小猫学步 发表于 2016-11-3 19:05:27

scanf语句参数错误,最后一个参数前边要加&(取址符)

小猫学步 发表于 2016-11-3 19:09:58

椛灬椛落 发表于 2016-11-2 20:58
字符串的比较要用strcmp函数。你这样个貌似不行吧

个人觉得用数组比较字符串也是可以的,用两个数组对应下标进行比较,要注意字符串结尾是用\0标记的,这个可以作为循环条件的终止!

Cy86183570 发表于 2016-11-6 12:29:08

小猫学步 发表于 2016-11-3 19:05
scanf语句参数错误,最后一个参数前边要加&(取址符)

你是在逗我吗?!num是数组,num已经是首地址了!

椛灬椛落 发表于 2016-11-7 20:21:44

小猫学步 发表于 2016-11-3 19:09
个人觉得用数组比较字符串也是可以的,用两个数组对应下标进行比较,要注意字符串结尾是用\0标记的,这个 ...

那样的话你还的自己写函数。。数组是不能直接计算的。。你要遍历他比较

小猫学步 发表于 2016-11-8 14:02:28

椛灬椛落 发表于 2016-11-7 20:21
那样的话你还的自己写函数。。数组是不能直接计算的。。你要遍历他比较

嗯   我这只是一个思路   没有考虑具体实施方案

小猫学步 发表于 2016-11-8 14:03:13

Cy86183570 发表于 2016-11-6 12:29
你是在逗我吗?!num是数组,num已经是首地址了!

抱歉   没有仔细看你的代码   只是大概看了一下   
页: [1]
查看完整版本: 结构体数组问题