C语言复习——投票问题——动态数组(2021.11.20)
生活随笔
收集整理的這篇文章主要介紹了
C语言复习——投票问题——动态数组(2021.11.20)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
C語言復習—投票問題(動態數組)
題目:某選舉活動有五位候選人。候選人按1-5編號,投票工作是在選票上方標記出某位候選人的編號即可。試編寫一程序,使用數組保存并輸出每位候選人的得票數。如果所讀取數為-1,讀取選票結束;如果所讀取數不在1~5的范國內,該選票被視作“廢票”,程序應可以計算出廢票數。(提示:所讀選票上方的標記與數組的下標有對應關系。)
優化:為了更清晰的體現投票過程、現在模擬n位候選人被投票的過程,將讀取字符的過程改為讀取String類的字符串,且使用malloc/free開辟動態數組,以實現有n位候選人,具體體現如下。
#include <iostream> using namespace std;int main() { int num_candidates;//候選人數//int invalid_poll=0;//統計廢票數cout<<"(1)請輸入候選人的人數:";cin>>num_candidates;動態開辟兩個數組,分別用來儲存儲存投票的數量、候選者的姓名int *poll =(int*)malloc(sizeof(int)*num_candidates);string *name =(string*)malloc(sizeof(char)*num_candidates);//輸入候選者的姓名cout<<"(2)請輸入候選人的姓名:"<<endl;for(int i=0;i<num_candidates;i++)//輸入姓名{cin>>*(name+i);}//輸入投票的總人數int voters_num;cout<<"(3)請輸參與投票的人數:";cin>>voters_num;string voter;//存儲被投票人的名字cout<<"(4)請輸入被投者的姓名"<<endl;//for (int j=0;j<voters_num;j++){cin>>voter;for(int k=0;k<num_candidates;k++)if(voter == name[k]){poll[k]++;}}//打印投票結果cout<<endl;cout<<"/*****讓我們看看最后的投票結果為:*****/"<<endl;for (int i=0;i<num_candidates;i++){cout<<i+1<<"."<<name[i]<<"的票數為:"<<poll[i]<<endl;}//cout<<"廢票數為:"<<invalid_poll;//釋放動態空間free(poll);free(name);return 0;}總結
以上是生活随笔為你收集整理的C语言复习——投票问题——动态数组(2021.11.20)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑声卡维修经验和实例完全分析
- 下一篇: 基于 DolphinDB 的行情中心解决