注册 登录
编程论坛 C语言论坛

结构体 选举

wfx753951 发布于 2020-02-12 16:25, 2099 次点击
有没有老哥帮忙解释一下这段代码,新手看不太懂
#include<stdio.h>
#include<math.h>
#include<string>
#define n 10
struct person
{ char name[20];
  int  count;
};
void main()
{ struct person leader[4]={{"wang",0},{"zhang",0},{"zhou",0},{"gao",0}};
  char name[20];
  int i,j;
  for(i=0;i<n;i++)
  { gets(name);
    for(j=0;j<4;j++)
    if (strcmp(name,leader[j].name)==0)
    {leader[j].count++;
    break;}
  }
  printf("\n");
  for(j=0;j<4;j++)
      printf("%s:%d\n",leader[j].name,leader[j].count);
}
4 回复
#2
叶纤2020-02-12 22:42
程序代码:
c++和c。 struct差距好大啊,正好我没学过结构体,一起学习吧

 #include<stdio.h>
struct xuanju//这里是结构体的声明,结构体里有成员,结构名称最好用大写
{   char name[20];
    int piaoshu;
};//struct是聚合类型数据,作用,允许我们将混合类型变量组合在一起
int main() {//这里是定义
    struct xuanju wang= {"wang",0};//定义了wang的变量名,可访问name和票数
    struct xuanju zhang= {"zhang",0};//定义了张
    struct xuanju zhou= {"zhou",0};//....
    struct xuanju gao= {"gao",0};//....
    for(int i=0; i<10; ++i)
    {   char name[20]= {0};
        scanf("%s",name);//当输入的字符串和成员名长度相等时,成员票数加一
        if(strcmp(name,wang.name)==0)//strcmp是比较字符串的相等就是true
        {   ++wang.piaoshu;
            ;
        }
        else if(strcmp(name,zhang.name)==0)
        {   ++zhang.piaoshu;

        }
        else if(strcmp(name,zhou.name)
                ==0) {
            ++zhou.piaoshu;
        }

        else if(strcmp(name,gao.name)==0)

        {   ++gao.piaoshu;
        }
    }
    printf("%s:%d\n",wang.name,wang.piaoshu);//然后就是打印每个成员得到的票数
    printf("%s:%d\n",zhang.name,zhang.piaoshu);
    printf("%s:%d\n",zhou.name,zhou.piaoshu);
    printf("%s:%d\n",gao.name,gao.piaoshu);
}
   

      
#3
叶纤2020-02-13 11:49
当不理解句子的时候可以尝试分解,不理解变量的时候可以先查意思,比如
struct,struct,struct这个聚合类型,你可以把它想成老板,只有老板才有权利分配人员工作,调用员工的时候需要一个经理帮老板干活,比如xuanju就是经理,它可以调用员工工作,strcam,strcam,strcam我知道这个是c语言里的,c++可以使用,但被列入c++标准了吗?
#4
wfx7539512020-02-13 14:26
回复 2楼 叶纤
哇喔~我懂了,谢谢你
#5
叶纤2020-02-13 15:01
以下是引用叶纤在2020-2-13 11:49:07的发言:

当不理解句子的时候可以尝试分解,不理解变量的时候可以先查意思,比如
struct,struct,struct这个聚合类型,你可以把它想成老板,只有老板才有权利分配人员工作,调用员工的时候需要一个经理帮老板干活,比如xuanju就是经理,它可以调用员工工作,strcam,strcam,strcam我知道这个是c语言里的,c++可以使用,但被列入c++标准了吗?

strcmp.    strcmp strcmp  strcmp.  strcmp. strcmp. strcmp
我写出strcam都没人说出来
1