1.编程统计候选人的得票数。
设有3个候选人zhang、li、wang(候选人姓名不区分大小写),10个选民,选民每次输入一个得票的候选人的名字,若选民输错候选人姓名,则按废票处理。选民投票结束后程序自动显示各候选人的得票结果和废票信息。要求用结构体数组candidate表示3个候选人的姓名和得票结果。
例如:
Input vote 1:li
Input vote 2:li
Input vote 3:Zhang
Input vote 4:wang
Input vote 5:zhang
Input vote 6:Wang
Input vote 7:Zhang
Input vote 8:wan
Input vote 9:li
Input vote 10:lii
Election results:
li:3
zhang:3
wang:2
Wrong election:2
输入格式:
"Input vote %d:"
"%s"
输出格式:
"Election results:\n"
候选人姓名+"%8s:%d\n"
"Wrong election:%d\n"
#include<stdio.h>
#include<string.h>
struct candidate
{
char name[10];
int count;
};
int main ()
{
int i,j,flag,error=0;
struct candidate a[3]={"li",0,"zhang",0,"wang",0};//定义结构体数组
//一个放name[10]中,一个放count中 交替进行
char b[10];
for(i=0;i<10;i++)
{
flag=0;
printf("Input vote %d:",i+1);
scanf("%s",b);
for(j=0;j<3;j++)
{
if(strcasecmp(a[j].name,b)==0)//判断输入名字是否为候选人名 且不区分大小写
{
a[j].count++;//若是,则计数
flag=1;//设置标志变量为1
}
}
if(flag==0)//若不是
error++;
}
printf("Election results:\n");
for(i=0;i<3;i++)
printf("%8s:%d\n",a[i].name,a[i].count);
printf("Wrong election:%d\n",error);
return 0;
}