[問題] C++亂數降冪排序

看板C_and_CPP (C/C++)作者 (舊的)時間12年前 (2013/09/02 15:47), 編輯推噓0(1114)
留言16則, 4人參與, 最新討論串1/2 (看更多)
按照ROCK大的提示改了一下但是我發現個問題 int main() { struct data math[NUMBER]; srand(int(time(0))); int i,j; for(i=0;i<NUMBER;i++) { math[i].c=rand()%101+0; //亂數產生50個數字 0~100 } //排序 unsigned nCount[100]={0}; for(i=0 ; i < NUMBER ; ++i) { nCount[math[i].c]++; //計算0~100各出現幾次,放進nCount } j=0; for( i=100 ; i > 0 ; i--) { int k; for( k=0 ; k < nCount[i] ; --k,++j) math[j].c=i; //把結果從100開始找,存進math[] 這邊會從大的數字開 始找,存在的值寫進去math,沒有就跳過 } // 排序結束 // 輸出排序結果 cout << "排序結果\n"; for(i=0;i<NUMBER;i++) { cout << (math[i].c) << endl; } system("pause"); return 0; } http://ppt.cc/kpy2 就是只要出現重複的數他就不會排列進去..請問我這樣是哪裡寫錯了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.70.130.253

09/02 16:32, , 1F
譴責從小就在網路上找作業。
09/02 16:32, 1F

09/02 17:01, , 2F
:(對不起 因為我手上的書沒有教排序法
09/02 17:01, 2F

09/02 17:13, , 3F
C++的Algorithms就有sort了不用再寫一次了吧
09/02 17:13, 3F
※ 編輯: jord98972005 來自: 61.70.130.253 (09/02 18:07)

09/02 18:35, , 4F
裡面的--k是打錯還是搞笑?
09/02 18:35, 4F

09/02 18:37, , 5F
還有nCount[100]只能存0~99
09/02 18:37, 5F

09/02 18:46, , 6F
原本是++k 但我改完之後這樣會當掉 改--就沒事
09/02 18:46, 6F

09/02 18:50, , 7F
= =疑 改++k就好了 嗚嗚嗚嗚我是白癡
09/02 18:50, 7F

09/02 18:51, , 8F
果然是在搞笑.....╮(﹋﹏﹌)╭..
09/02 18:51, 8F

09/02 18:53, , 9F
疑 可是重複三次以上的數字會跑到最下面欸..問號
09/02 18:53, 9F

09/02 18:53, , 10F
應該說她有時候不會排列進去...
09/02 18:53, 10F

09/02 18:53, , 11F
會當的原因也許是nCount[100]造成的@@"
09/02 18:53, 11F

09/02 18:55, , 12F
http://ppt.cc/GiR8 像這樣 請問有解嗎
09/02 18:55, 12F

09/02 18:58, , 13F
你先把nCount的陣列大小寫對,然後把i>0改成i>=0再說...
09/02 18:58, 13F

09/02 19:02, , 14F
...改101 和>=0 就對了 為啥啊...神可以解說一下嗎
09/02 19:02, 14F

09/02 19:06, , 15F
陣列大小為n時,中括號裡面的值只能放0~n-1
09/02 19:06, 15F

09/02 19:07, , 16F
至於>0改成>=0,去找神幫你解釋吧,我只是普通人@@"
09/02 19:07, 16F
文章代碼(AID): #1I94A5vs (C_and_CPP)
文章代碼(AID): #1I94A5vs (C_and_CPP)