東華OJ基礎題90 選票統計

2021-10-03 10:57:31 字數 1408 閱讀 9622

問題描述 :

學生會主席投票選舉工作正在舉行。本次投票將採用電腦統計選票的方式,當投票選舉正式開始後,同學們將排隊一 一走到電腦前,投上自己神聖的一票:在電腦前輸入乙個姓名,然後輸入回車表示確認。

投票結束後顯示得票最高的同學姓名,該同學將當選為新一屆學生會主席。

請程式設計統計投票。

輸入說明 :

輸入包含多行,每行是乙個由英文本母組成的字串,表示乙個姓名,首尾以及中間都不包含空格。

參加投票學生的人數不超過100人,每個學生姓名字串的長度小於20。

由於學生投票時輸入的姓名有大寫有小寫,你在統計時不區分大小寫,即"liming"和"liming"是同乙個人。

輸出說明 :

輸出為乙個字串——當選為學生會主席的學生姓名以及他的票數,中間用乙個空格分隔。

輸入保證沒有兩個人並列票數最高。

輸出的英文本母全部用小寫。

輸入範例 :

limin

liming

liming

wangshan

huyou

liming

輸出範例:

liming 3

總結

1.與90題不同在於不知道有多少人參與投票(while迴圈來解決),不知道被投的有哪些(結構陣列裡面的元素是動態的)。

2.思路:結構陣列初始化,名字為空,票數為0----->不斷輸入乙個名字–> 轉化成小寫字母---->如果是第一次輸入,結構陣列記錄下來,如果不是,則在結構陣列中進行比較,檢視本次輸入與結構陣列中是否有相同名字的—>若有,結構陣列當前票數加1,跳出比較,若沒有則直接將名字賦值給結構陣列(也就是說之前沒人選過他)。

要記錄這是被投的第幾個人!!

3.字串迴圈輸入while(gets(name)),只能有gets 按下crtl+z 即可結束

#include

#include

#include

typedef

struct stustudent;

intmain()

i=-1

;while

(gets

(name))if

(i==0)

//若不是第一次

else}if

(flag)}}

#if(0)

測試為了輸出結構陣列中的人以及相應的票數

for(j=0

;j<=i;j++

)#endif

//找出票數最多的

max=stu[0]

;for

(j=1

;j<=i;j++

)printf

("%s %d\n"

,max.name,max.num)

;return0;

}

90 選票統計

90 選票統計 問題描述 學生會主席投票選舉工作正在舉行。本次投票將採用電腦統計選票的方式,當投票選舉正式開始後,同學們將排隊一 一走到電腦前,投上自己神聖的一票 在電腦前輸入乙個姓名,然後輸入回車表示確認。投票結束後顯示得票最高的同學姓名,該同學將當選為新一屆學生會主席。請程式設計統計投票。輸入說...

東華OJ 基礎題 64統計字母

問題描述 輸入一串字串,以 結束,不分大小寫,統計其中每種英文本元出現的次數。輸入說明 你的程式需要從標準輸入裝置 通常為鍵盤 中讀入多組測試資料。每組輸入資料由一行組成,其中只包括大小寫的英文本母和 且以 結尾,每行字元數不超過100。兩組資料之間沒有多餘的空行。在行首和行尾沒有多餘的空格。輸出說...

選票統計 oj

time limit 1000ms memory limit 65536kb problem description 某校學生會主席由全校學生投票選舉產生,共有 名候選人報名參選,編號為1到 0 1000 全校有 名學生 0 30000 每人都可以投票。但每人只能投一票,每票只能選1名候選人。請你設...