作者cdexsw (so)
看板C_and_CPP
標題[問題] C語言 產生亂數然後排大小
時間Mon Jul 20 12:02:02 2009
以下是我寫的程式,要跑出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
推 QQ29:你bubble sort那邊寫錯了吧 07/20 12:14
→ iamivers0n:你亂數沒有存到array裡唷... 07/20 12:15
→ iamivers0n:應該是i[j] = 1 + rand() % 38; 吧:p 07/20 12:16
推 QQ29:對耶= = XD 07/20 12:16
→ cdexsw:但是改了之後5個亂數都是一樣的數字耶@@ 07/20 12:22
推 QQ29:你怎麼改的?? 07/20 12:23
→ cdexsw:i=1+rand()%38; 變成i[j] = 1 + rand() % 38;的話 07/20 12:28
推 ianfang:你是不是printf("亂數是:%d \n",i[j]); 這沒改... 07/20 12:29
→ cdexsw:執行的時候也是顯示錯在這一行!!!! 07/20 12:29
→ cdexsw:真的耶,不過現在有排大小,但數字沒有在38以內 07/20 12:31
→ iamivers0n:呃 可是我跑起來正常耶 你要不要再貼一下你改完之後 07/20 12:34
→ iamivers0n:的code? 07/20 12:34
※ 編輯: cdexsw 來自: 140.136.208.19 (07/20 12:52)
※ 編輯: cdexsw 來自: 140.136.208.19 (07/20 12:53)
→ iamivers0n:你要等亂數生完才可以排序阿XD 07/20 12:56
→ cdexsw:我改了一下原本的文章唷,不好意思一直麻煩大家 07/20 12:56
推 VictorTom:1. 你的排序怎麼在亂術產生之前就在做了.... 07/20 12:56
→ VictorTom:2. 你的陣列i[]這樣給初值應該只有一個int給你用吧?? 07/20 12:57
→ VictorTom:3. 數字會 <= 38包含38喔@_@" 07/20 12:58
推 MysterySW:可以用sort()來排序最快XD 要先include algorithm跟 07/20 14:45
→ MysterySW:functional這兩個標頭檔 07/20 14:45