结构体应用1

/*
    设某班班级班长竞选,有三个候选人,10个人进行投票,编写一程序模拟投票过程,给出各候选人
    的票结果,并给出班长的最终人选。
    分析:对于每个候选人,我们抽象出两个属性,一个是姓名,一个是得票数。进行投票时根据姓名
    来对应提高得票数
*/

#include "stdio.h"
#include "string.h"

struct candidate                                   //结构体  班长候选人 成员变量就是名字和他们所得的票数
{
    char name[20];                                 //名字用数组存储
    int count;
}candi[3]={"WangMing",0,"SongLei",0,"XuLing",0};   //结构体的初始化
                                                   //因为对于结构体中的成员变量共有三组,即有三个候选人
                                                   //所以对结构体进行初始化的时候要定义一个一维数组
                                                   //要把这些成员信息储存在以结构体为新的数据类型的变量下
                                                   //进行信息存储
void main()
{
    int i,j;                                       //循环变量
    char monitor_name[20];                         //主函数中存储班长候选人的姓名
    int count_max,i_max;                           //存储最后选票的最大值 i_max存储最后选票最大值的位置
    printf("请输入您的选票:\n");
    for(i=0;i<=10;i++)
{
    gets(monitor_name);
    for(j=0;j<3;j++)
    if(strcmp(monitor_name,candi[j].name)==0)
        candi[j].count++;
}
                                                    ///选票统计过程
printf("\n");
for(i=0;i<3;i++)                                    //每名候选人得票数
    printf("%s:%d\n",candi[i].name,candi[i].count);
count_max=candi[0].count;   i_max=0;                ///初始化
for(i=1;i<3;i++)                                    ///注意这个选票的比较循环是从1开始的
{
    if(candi[i].count>=count_max)
    {
        count_max=candi[i].count;
        i_max=i;
    }
}
printf("班长为:%s,得票:%d.\n",candi[i_max].name,candi[i_max].count);
}

统计每个人的投票结果,循环输出,比较每个人的选票得出最大值,输出,确定班长人选

你可能感兴趣的:(C语言,c语言)