Description
定义一个候选人的结构体,包括姓名(字符数组)、选票数(整型),
共三个候选人,分别是Li,Zhang,Wang,8张选票,统计候选人选票数。
Input
输入1行,每行输入8个选票,用空格隔开。
Output
输出3行,每行输出候选人的姓名和选票,用冒号“:”隔开。
Sample Input
Li Zhang Wang Wang Wang Zhang Zhang Li
Sample Output
Li:2
Zhang:3
Wang:3
Source
方法一(结构体+数组):
#include <stdio.h>
#include <string.h>
struct peo
{
char name[20];
int num;
};
int main()
{
struct peo p[3]={"Li",0,"Zhang",0,"Wang",0};
int i,j;
char keyname[30];
for ( i = 0; i <8; i++)
{
scanf("%s",keyname);
for ( j = 0; j <3; j++)
{
if (strcmp(keyname,p[j].name)==0)
{
p[j].num++;
}
}
}
for ( i = 0; i <3; i++)
{
printf("%s:%d\n",p[i].name,p[i].num);
}
return 0;
}
方法二(结构体+指针):
#include <stdio.h>
#include <string.h>
struct peo
{
char name[20];
int num;
};
int main()
{
struct peo pe[3]={"Li",0,"Zhang",0,"Wang",0};
struct peo *p;
char keyname[30];
int i;
for (i = 0; i <8; i++)
{
scanf("%s",keyname);
for ( p= pe; p<pe+3; p++)
{
if (strcmp(keyname,(*p).name)==0)
{
(*p).num++;
}
}
}
for ( p = pe; p < pe+3; p++)
{
printf("%s:%d\n",(*p).name,(*p).num);
}
return 0;
}