[問題] C語言 產生亂數然後排大小

看板C_and_CPP作者 (so)時間15年前 (2009/07/20 12:02), 編輯推噓6(6014)
留言20則, 6人參與, 最新討論串1/1
以下是我寫的程式,要跑出5個亂數然後再排大小, 不好意思,我寫到這樣但是有問題自己不會改 可以麻煩會的人幫我看一下問題出在哪好嗎?感激~~ #include <stdio.h> #include <stdlib.h> #include <time.h> main() { int i[]={0},j; int temp,s,t; srand(time(NULL)); for(j=0; j<6; j++) { i[j]=1+rand()%38; for(s=0; s<6; s++){ for(t=s+1; t<6; t++){ if(i[t]>i[s]){ temp = i[t]; i[t] = i[s]; i[s] = temp; } } } printf("亂數是:%d \n",i[j]); } getch(); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.136.208.19

07/20 12:14, , 1F
你bubble sort那邊寫錯了吧
07/20 12:14, 1F

07/20 12:14, , 2F
http://0rz.tw/IHiJp 照網頁下面的邏輯寫看看吧 隨便估的
07/20 12:14, 2F

07/20 12:15, , 3F
你亂數沒有存到array裡唷...
07/20 12:15, 3F

07/20 12:16, , 4F
應該是i[j] = 1 + rand() % 38; 吧:p
07/20 12:16, 4F

07/20 12:16, , 5F
對耶= = XD
07/20 12:16, 5F

07/20 12:22, , 6F
但是改了之後5個亂數都是一樣的數字耶@@
07/20 12:22, 6F

07/20 12:23, , 7F
你怎麼改的??
07/20 12:23, 7F

07/20 12:28, , 8F
i=1+rand()%38; 變成i[j] = 1 + rand() % 38;的話
07/20 12:28, 8F

07/20 12:29, , 9F
你是不是printf("亂數是:%d \n",i[j]); 這沒改...
07/20 12:29, 9F

07/20 12:29, , 10F
執行的時候也是顯示錯在這一行!!!!
07/20 12:29, 10F

07/20 12:31, , 11F
真的耶,不過現在有排大小,但數字沒有在38以內
07/20 12:31, 11F

07/20 12:34, , 12F
呃 可是我跑起來正常耶 你要不要再貼一下你改完之後
07/20 12:34, 12F

07/20 12:34, , 13F
的code?
07/20 12:34, 13F
※ 編輯: cdexsw 來自: 140.136.208.19 (07/20 12:52) ※ 編輯: cdexsw 來自: 140.136.208.19 (07/20 12:53)

07/20 12:56, , 14F
你要等亂數生完才可以排序阿XD
07/20 12:56, 14F

07/20 12:56, , 15F
我改了一下原本的文章唷,不好意思一直麻煩大家
07/20 12:56, 15F

07/20 12:56, , 16F
1. 你的排序怎麼在亂術產生之前就在做了....
07/20 12:56, 16F

07/20 12:57, , 17F
2. 你的陣列i[]這樣給初值應該只有一個int給你用吧??
07/20 12:57, 17F

07/20 12:58, , 18F
3. 數字會 <= 38包含38喔@_@"
07/20 12:58, 18F

07/20 14:45, , 19F
可以用sort()來排序最快XD 要先include algorithm跟
07/20 14:45, 19F

07/20 14:45, , 20F
functional這兩個標頭檔
07/20 14:45, 20F
文章代碼(AID): #1AO-mxWY (C_and_CPP)