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