投票统计(结构体)

问题

用结构体解决问题的一般结构是什么?

代码如下:

#include<stdio.h>
#include <string.h>
#define VOTES 5
#define CANDIDATES 3
struct person
{
    
    
    char  name[20];
    int  count;
}leader[CANDIDATES]={
    
    "li",0,"zhang",0,"zhao",0};//结构体数组初始化
int main()
{
    
    
    int i,j;
    char  leader_name[20];//你输入的这个姓名
    for(i=1;i<=VOTES;i++)//票以字符串的形式输入
    {
    
    
        scanf("%s",leader_name);
        for(j=0;j<CANDIDATES;j++)//对这个结构体数组元素进行比较是否一致
        {
    
    
            if(strcmp(leader_name,leader[j].name)==0)
            {
    
    
                leader[j].count++;//一致的话,对应结构体票数加一
            }
        }
    }
    printf("  姓名  票数\n");
    for(i=0;i<CANDIDATES;i++)//输出结构体,一一对应输出的
    {
    
    
        printf("%5s          %d\n",leader[i].name,leader[i].count);
    }
    return 0;
}

测试结果

zhao li zhang li zhao
  姓名  票数
   li          2
zhang          1
 zhao          2

Process returned 0 (0x0)   execution time : 16.578 s
Press any key to continue.

总结

 1、最外循环主要是对输入的处理
 2、中间主要是对比较的处理,并统计
 3、最后为输出
 另外,结构体是一种特殊的类型,它包括了许多其它的类型,是一个类型的集合,具体包括什么类型,主要看它所描述的对象有什么特征。
 4、可以简单概括为统一名(方便对这个对象的特征进行使用),囊括了许多东西

猜你喜欢

转载自blog.csdn.net/qq_51907130/article/details/111999869