對候選人得票的統計程式:設有 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;
}