作者gcobc12632 (Ted)
看板NTUE-CS102
標題[閒聊] 潮爽得 自己寫出重複排名 分享一下
時間Tue Jan 19 20:45:40 2010
努力奮戰的將C++全部重寫,
我應該真的有能力成為賈詡了…
因為,
我把四個屍體都成功復活成屍兵了!
==============(以上騙錢的)=============
我分享一下我的寫法,只寫上重複排名的部份:
int j,k[10000],
for(int m=0;m<10000;m++) //註1
{
k[m]=m+1;
}
for(j=0;j<n;j++) //這裡的n是最之前輸入人數的n
{
if(sum[j]==sum[j+1]) //註2
{
k[j+1]=k[j];
}
}
cout<<"第"<<k[j]<<"名"; //以下略
我的寫法是:
把排名的部份也寫成一個陣列,
因為這樣陣列會比較好去做比較、互換等動作…
※註1:
此迴圈在做的動作是:將排名陣列(k[10000])的初始值設為1~10000
這樣就可避免cout時,陣列沒有設定初始值而跑出亂碼。
(當我想將排名設為陣列時還想說:幹,一萬個初始值設到死喔= =)
※註2:
這就是重複排名的解決方法。
if(後面的總分=前面的總分)
後面的排名=前面的排名
這樣的輸出結果就會等於:
如果第3名的總分等於第2名的總分
就把第2名的排名丟給第3名(以此類推
但是如果沒有總分等於的話,
又會繼續依照初始值所設定的名次所排下去!
例如:a跟b的總分一樣,且第1名,將a的名次給b(兩個都第1)
(sum[j]==sum[j+1]→k[j+1]=k[j])
c的總分沒跟b一樣,固不考慮if,並且k[2]=3,固c的排名為3
哈哈我真是強~
炮哥,加油好嗎?
呼呼,這篇全部都手打的(包括程式部分)
賺不少喔~啾咪^.<
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.29.72
推 ip3311:GOOD 新想法唷! 阿泰 全台灣未來的資訊業龍頭就是你了 01/19 20:49
你是在酸我還是在捧我……
※ 編輯: gcobc12632 來自: 114.32.29.72 (01/19 21:05)
→ ip3311:我在鼓勵你= = 01/19 21:51
→ gcobc12632:考試的時候想不出來 現在才來馬後炮 真是捶心肝= = 01/19 21:55
推 garfield112:我還一為這篇會XX = = 01/21 01:48
推 suan710:繳交期限過了會有人來看...? 01/21 02:07
→ gcobc12632:樓樓上 這是做人的問題( ̄ㄧ ̄;) 01/21 11:49