看板 NTUE-CS102 關於我們 聯絡資訊
努力奮戰的將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