您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了C語言如何實(shí)現(xiàn)投票系統(tǒng),內(nèi)容簡(jiǎn)而易懂,希望大家可以學(xué)習(xí)一下,學(xué)習(xí)完之后肯定會(huì)有收獲的,下面讓小編帶大家一起來看看吧。
問題:
某個(gè)班級(jí)有3個(gè)候選人,有6個(gè)同學(xué)參與投票,而且只能投一個(gè)人,要求編寫統(tǒng)計(jì)選票的程序。先輸入候選人名字,再輸入同學(xué)所投的候選人名字,最后根據(jù)每位候選人的得票數(shù)排序
思路:
先定義一個(gè)學(xué)生結(jié)構(gòu)體 stduent,結(jié)構(gòu)體中包含姓名,票數(shù)。
同時(shí)聲明結(jié)構(gòu)數(shù)組stu[N - 1],里面存放候選人信息
輸入候選人的姓名,開始投票。如果輸入的字符串和候選人的姓名一樣,就累加。
之后,用冒泡排序。最后輸出排完序票數(shù)。
個(gè)人感覺我做的這個(gè),很簡(jiǎn)陋。只是完成了基本的功能
// vote.c --投票系統(tǒng),用結(jié)構(gòu)體實(shí)現(xiàn) #include <stdio.h> #include <string.h> #define N 3 // 候選人 #define M 6 // 學(xué)生 struct stduent{ // 聲明學(xué)生結(jié)構(gòu)體 char name[20]; // 姓名 int num; // 票數(shù) } stu[N - 1]; int main(void) { int i, j; char temp[10]; for (i = 0; i < N; i++) { printf("請(qǐng)輸入第%d個(gè)候選人姓名:", i + 1); scanf("%s", stu[i].name); } for (i = 0; i < M; i++) { printf("請(qǐng)第%d個(gè)學(xué)生輸入投票結(jié)果:", i+1); scanf("%s", temp); for (j = 0; j < N; j++) if (strcmp(stu[j].name, temp) == 0) { stu[j].num++; break; } } // 冒泡排序 // 創(chuàng)建中間結(jié)構(gòu)變量 struct stduent t; for (i = 1; i < N; i++) for (j = N - 1; j >= i; j--) { if (stu[j - 1].num < stu[j].num) { t = stu[j - 1]; stu[j - 1] = stu[j]; stu[j] = t; } } printf("\n投票排名:\n"); for (i = 0; i < N; i++) printf("%s的票數(shù)是%d\n", stu[i].name, stu[i].num); return 0; }
附圖:
以上就是關(guān)于C語言如何實(shí)現(xiàn)投票系統(tǒng)的內(nèi)容,如果你們有學(xué)習(xí)到知識(shí)或者技能,可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。