理想小青年 发表于 2018-5-12 16:28:10

结构体 关于调用整形数组

本帖最后由 理想小青年 于 2018-5-12 16:31 编辑

#include <stdio.h>
#define M 3
#define F 2

struct dog
{
        char name;
        int sroce;
};

void main()
{
        int i,j;
        char ch;
        char *chh = ch;
        struct dog man={{"二哈",0},{"金毛",0},{"萨摩",0}};//一个结构化二维数组
        printf("欢迎参加狗王选拔:\n");
        printf("狗王候选:二哈,金毛,萨摩\n");
        for(i=0;i<5;i++)        //一共投票五次(5人选票)
        {
                printf("第%d位投选狗王,请输入你支持的狗王: ",i+1);
                gets(chh);//接收选票名字
                for(j=0;j<M;j++)
                {
                        if(strcmp(man->name,chh))
                        {
                                continue;
                        }
                        else
                        {
                                printf("%d\n",man->sroce);
                                //man->sroce += 1;//选举字符串 与 数组一样,累计+1
                        }
                }

        }
        for(i=0;i<M;i++)
        {
                printf("%s的选票数为: %d票\n",man->name,man->sroce);
        }
}


为什么man->sroce不应该取值是一个int类型的数吗?为什么是一串未知的数组1开头的,初始化为0,累计+=1的话会报错error C2106: '+=' : left operand must be l-value
不懂 求大神指点

理想小青年 发表于 2018-5-12 20:40:34

{:10_256:}人造人大神已帮忙梳理代码如下:
#include <stdio.h>
#include <string.h>

#define MAX 100

struct Vote
{
        char name;
        int score;
};

int main(void)
{
        struct Vote va;
        int m = 0;
        struct Vote tmp;

        printf("欢迎参加狗王选拔:\n");
        printf("狗王候选:二哈,金毛,萨摩\n");
        for(int i = 0; i < 5; ++i)        // 一共投票五次(5人选票)
        {
                printf("第%d位投选狗王,请输入你支持的狗王: ", i + 1);
                scanf("%s", tmp.name);

                int flag = 0;
                for(int j = 0; j < m; ++j)
                {
                        if(strcmp(va.name, tmp.name) == 0)
                        {
                                flag = 1;        // 找到了
                                va.score++;
                        }
                }

                if(flag == 0)
                {
                        ++m;
                        strcpy(va.name, tmp.name);
                        va.score = 1;
                }
        }

        for(int i = 0; i < m; i++)
        {
                printf("%s的选票数为: %d票\n", va.name, va.score);
        }

        return 0;
}

理想小青年 发表于 2018-5-12 16:32:31

原题是小甲鱼的 选票小游戏{:10_256:}输入其余的字符串(非狗王竞选也能不给予识别)

理想小青年 发表于 2018-5-12 16:44:39

@BngThea @lwl19880225 @人造人

BngThea 发表于 2018-5-12 22:15:13

结构和二维数组两种数据结构都能用作该问题,你的代码同时使用引起了混乱
页: [1]
查看完整版本: 结构体 关于调用整形数组