用结构体实现投票
题目要求
候选人3个,姓氏为“张”,“李”,“王”。投票人为5。用结构体统计票数并输出结果。
做法一:先定义好投票人数目
#include<iostream>
#include<string.h>
using namespace std;
#define N 5
struct person{
char name[20];
int count;
}leader[3]={"张",0,"李",0,"王",0};
int main(){
struct person p;
int i,j;
for(i=0;i<N;i++){
cin>>p.name;
if(strcmp(p.name,leader[0].name)==0){
leader[0].count++;
}
if(strcmp(p.name,leader[1].name)==0){
leader[1].count++;
}
if(strcmp(p.name,leader[2].name)==0){
leader[2].count++;
}
}
for(j=0;j<3;j++){
cout<<leader[j].name<<leader[j].count<<endl;
}
return 0;
}
做法二:在输入时确定投票人的数目
#include<cstdio>
#include<cstring>
struct person{
char name[20];
int count;
}leader[3]={"Li",0,"Zhang",0,"Fun",0};
int main()
{
int n;
struct person p;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%s",p.name);
if(strcmp(p.name,leader[0].name)==0)
{
leader[0].count++;
}
if(strcmp(p.name,leader[1].name)==0)
{
leader[1].count++;
}
if(strcmp(p.name,leader[2].name)==0)
{
leader[2].count++;
}
}
for(int i=0;i<3;i++)
{
printf("%s:%d\n",leader[i].name,leader[i].count);
}
return 0;
}
法一法二输入方式不同,头文件不同。