using namespace std;
int main()
{
int n=0,m=0,i,j,x;
char Name[9][3];
char one,two;
cout<<"歡迎使用學生幹部選舉系統"<<endl;
cout<<"請輸入侯選人的個數:";
cin>>n;
cout<<endl;
cout<<"請輸入投票人數:";
cin>>m;
cout<<endl;
getchar();
for(i=0;i<=n-1;i++)
{
cout<<"第"<<i+1<<"號候選人是:";
// cin.getline(&Name[i][0],2);
Name[i][0] = getchar(); //輸入字符串
getchar();
Name[i][1]=i+1; //輸入編號
Name[i][2]=0; //初次化投票項
}
cout<<"輸入完畢,本次參選的同學如下:"<<endl; //輸出結果
for(i=0;i<=n-1;i++)
{
cout<<"第"<<i+1<<"號候選人是:"<<Name[i][0]<<endl;
};
cout<<"輸出完畢"<<endl;
cout<<"本次為單選投票,請輸入候選人編號,按enter確定"<<endl;//投票
for(i=0;i<=m-1;i++)
{
cin>>x;
for(j=0;j<=n;j++) //通過強制類型轉換,實現char數組記錄數據
if(x==(int)(Name[j][1]))
Name[j][2]=(char)((int)(Name[j][2])+1);
};
cout<<"投票結束!"<<endl;
cout<<"姓名 編號 得票數"<<endl;//不知道為什麽沒有看到
one=Name[0][0]; //緩存
two=Name[0][2];
for(i=1;i<=n-1;i++) //比較出最大值
if((int)(Name[i][2])>(int)(two))
one=Name[i][0],two=Name[i][2];
for(i=0;i<n;i++) //輸出所有結果
{
for(j=0;j<=2;j++)
if (j==0)
cout<<Name[i][j]<<" ";
else
cout<<(int)Name[i][j]<<" ";
cout<<endl; //希望做到輸出壹行後換行
}
cout<<"得選人為"<<one<<" 票數"<<(int)two<<endl; //輸出結果
return 0;
}
結果如下:
歡迎使用學生幹部選舉系統
請輸入侯選人的個數:3
請輸入投票人數:6
第1號候選人是:a
第2號候選人是:b
第3號候選人是:c
輸入完畢,本次參選的同學如下:
第1號候選人是:a
第2號候選人是:b
第3號候選人是:c
輸出完畢
本次為單選投票,請輸入候選人編號,按enter確定
1
2
3
2
2
3
投票結束!
姓名 編號 得票數
a 1 1
b 2 3
c 3 2
得選人為b 票數3
程序只是稍微修改了下,還是有許多不足之處,比如名字只能輸入壹個字母,還有什麽需求可以再聯系我,明天再改