當前位置:成語大全網 - 新華字典 - 小白求助,程序求改。。。。c++

小白求助,程序求改。。。。c++

#include<iostream>

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

程序只是稍微修改了下,還是有許多不足之處,比如名字只能輸入壹個字母,還有什麽需求可以再聯系我,明天再改