对候选人得票的统计程序:设有 3 个候选人,今有 10 个人参加投票,从键盘先后输入这 10 个人所投的候选人的名字,要求最后输出这 3 个候选人的得票结果。
结构体与数组:
#include <iostream>
#include <cstring>
using namespace std;
struct Person //声明结构体类型Person
{
char chName[20];
int count;
};
int main( )
{
//定义Person类型的数组,内容为3个候选人的姓名和当前的得票数
Person leader[3]= {{"Li",0}, {"Zhang",0},{"Wang",0}};
int i,j;
char chLeaderName[20]; // chLeaderName为投票人所选的人的姓名
for(i=0; i<5; i++)
{
cin>>chLeaderName; // 先后输入5张票上所写的姓名
// 将票上姓名与3个候选人的姓名比较, 如果与某一候选人的姓名相同,就给他加一票
for(j=0; j<3; j++)
if(strcmp(chLeaderName, leader[j].chName)==0)
leader[j].count++;
}
cout<<endl;
for(i=0; i<3; i++) //输出3个候选人的姓名与最后得票数
{
cout<<leader[i].chName<<":"<<leader[i].count<<endl;
}
return 0;
}
结构体与指针:
//对候选人得票的统计 CH8_4
#include <iostream>
#include <string.h>
using namespace std;
//结构体
struct Person
{
char name[20];
int count;
};
//结构体数组
Person leader[3]= {"li",0, "zhang",0, "wang",0};
int main(int argc, char* argv[])
{
int i, j;
char name[20];
Person *pt; //结构体指针
pt = leader;
//
for(i=1; i<=10; i++)
{
//
cout<<"请输入候选人姓名:";
cin>>name;
//
for(j=0; j<3; j++)
if(strcmp(name,(pt+j)->name)==0)
(pt+j)->count++;
}
//
for(i=0; i<3; i++)
cout<<(pt+i)->name<< "\t"<<(pt+i)->count<<endl;
return 0;
}