#include <stdio.h>
#include <string.h>
// 候选人结构体:存储姓名与得票数
struct XuanMin
{
char name[32]; // 候选人姓名
int tickets; // 得票数量
};
int main()
{
struct XuanMin xm[3]; // 存储3位候选人
struct XuanMin max; // 记录最高票候选人
int feipiao = 0; // 废票计数器
int i;
int len;
int j;
int mark = 0;
char tempname[32];
len = sizeof(xm) / sizeof(xm[0]);
// 录入候选人并初始化票数
for(i = 0; i < len; i++)
{
xm[i].tickets = 0;
printf("请输入第%d个候选人的名字:\\n", i+1);
scanf("%s", xm[i].name);
}
// 进行5次投票
for(i = 0; i < 5; i++)
{
mark = 0;
printf("请输入你想投给谁:\\n");
memset(tempname, '\\0', sizeof(tempname));
scanf("%s", tempname);
for(j = 0; j < len; j++)
{
if(strcmp(tempname, xm[j].name) == 0)
{
xm[j].tickets++;
mark = 1;
break;
}
}
if(mark == 0)
{
printf("没有此候选人,该票作废\\n");
feipiao++;
}
}
// 输出所有候选人得票
printf("\\n===== 投票结果 =====\\n");
for(i = 0; i < len; i++)
{
printf("候选人:%s, 票数:%d\\n", xm[i].name, xm[i].tickets);
}
printf("废票总数:%d\\n\\n", feipiao);
max = xm[0];
for(i = 1; i < len; i++)
{
if(xm[i].tickets > max.tickets)
{
max = xm[i];
}
}
printf("得票最高候选人:%s,票数:%d\\n", max.name, max.tickets);
printf("并列第一名名单:");
for(i = 0; i < len; i++)
{
if(xm[i].tickets == max.tickets)
{
printf("%s ", xm[i].name);
}
}
printf("\\n");
return 0;
}


