例题7.2 候选人得票的统计程序。有3个候选人,最终只有1人当选领导。现有10人参加投票,从键盘先后输入10个人所投候选人名字,要求最后输出候选人得票结果。
#include <iostream> #include <string.h> using namespace std; struct Person{ string name; int count; }; int main(){ Person leader[3]={"zhangsan",0,"lisi",0,"wangwu",0}; string leaderName; for(int i=0;i<10;i++){ cin>>leaderName; for(int j=0;j<3;j++){ if(strcmp(leaderName,leader[j].name)==0) leader[j].count++; } } cout<<endl; for(int j=0;j<3;j++){ cout<<leader[j].name<<":"<<leader[j].count<<endl; } return 0; }
将上边的字符串比较修改一下:
#include <iostream> #include <string.h> using namespace std; struct Person{ string name; int count; }; int main(){ Person leader[3]={"zhangsan",0,"lisi",0,"wangwu",0}; string leaderName; cout<<"请每人输入一次候选人的名字,共计10次:"<<endl; for(int i=0;i<10;i++){ cin>>leaderName; for(int j=0;j<3;j++){ //字符串的比较在c++当中可以直接比较用== if(leaderName==leader[j].name) leader[j].count++; } } cout<<endl; for(int j=0;j<3;j++){ cout<<leader[j].name<<":"<<leader[j].count<<endl; } return 0; }