编程统计候选人的得票数。设有3个候选人zhang、li、wang(注意:候选人姓名不区分大小写,输入大写小写都对),10个选民,选民每次输入一个得票的候选人的名字,若选民输错候选人姓名,则按废票处理。选民投票结束后程序自动显示各候选人的得票结果和废票信息。要求用结构体数组candidate表示3个候选人的姓名和得票结果。
输入提示信息:"Input vote %d:"
输入格式:"%s"
输出提示信息:
"Election results:\n"
"Wrong election:%d\n"
输出格式:"%8s:%d\n"
程序运行示例:
Input vote 1:li
Input vote 2:li
Input vote 3:zhang
Input vote 4:wang
Input vote 5:wang
Input vote 6:wang
Input vote 7:zhang
Input vote 8:zhang
Input vote 9:li
Input vote 10:li
Election results:
li:4
zhang:3
wang:3
Wrong election:0
#include <stdio.h>
#include <string.h>
#define N 10
typedef struct candidate
{
char name[N];
int count;
}CAND;
int main()
{
CAND cand[N] = {{"li",0},{"zhang",0},{"wang",0}};
int i,j;
char name[N];
int wrong=0;
int flag;
for(i=0;i<N;i++)
{
flag = 0;
printf("Input vote %d:",i+1);
scanf("%s",name);
for(j=0;j<3;j++)
{
if(strcasecmp(cand[j].name,name) == 0)
{
cand[j].count++;
flag = 1;
}
}
if(flag == 0)
{
wrong++;
}
}
printf("Election results:\n");
for(i=0;i<3;i++)
{
printf("%8s:%d\n",cand[i].name,cand[i].count);
}
printf("Wrong election:%d\n",wrong);
}