[問題] rand取位數的問題

看板C_and_CPP (C/C++)作者 (飛揚的杯子)時間16年前 (2009/06/09 14:03), 編輯推噓1(107)
留言8則, 2人參與, 最新討論串1/1
如題 我們老師要求我們找出n個十位數的亂數 我的程式已經寫到這樣了 int main() { int i, n, n2; int num[100]; ^^^^^^ do { printf("請輸入要幾個個位數亂數\n"); scanf("%i",&n); srand(time(NULL)); printf("原始陣列"); for(i=0; i<n; i++) { num[i]=rand()%11; if(num[i]>0 && num[i]<10) ^^^^^^^^^^^^^^^^^^^^^^^^主要是由這裏開始不知道該怎麼改 { printf(" %i ",num[i]); } } --------------------- 我這個寫法已經可以找出屬於個位數的亂數 可是問題是 他會自動把不符合條件的亂數刪除 例如:我希望找到十個符合條件的亂數 但是這次的亂數裡面只有七個符合條件 顯示出來就只有顯示七個 可是我要找十個呀>"< --------------------- 另外再問一個 陣列的索引值應該怎麼設定才可以配合使用者的輸入值呢? (因為這題是要求要使用者自行輸入顯示出的亂數個數 那假設 使用者輸入99 或 999 或9999 就會超出範圍) 老師是告訴我們用[宣告位址] (可是他只告訴我原理 沒有告訴我應該要怎麼寫 我很笨 這樣不懂) 應該怎麼用比較好呢 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.127.179.155 ※ 編輯: flyingcop 來自: 140.127.179.155 (06/09 14:04)

06/09 14:41, , 1F
else n--;
06/09 14:41, 1F

06/09 15:47, , 2F
32 bit的insigned int也只能放最大到 42,9496,7295....
06/09 15:47, 2F

06/09 15:48, , 3F
而stdlib.h裡的rand()回傳印象中最大到32767而已....
06/09 15:48, 3F

06/09 16:04, , 4F
如果你的作法是想產生十個0~9的數湊成十位數, 應該%10
06/09 16:04, 4F

06/09 16:05, , 5F
當你有10個0~9的數字自然就拼成了一個十位數的數字....
06/09 16:05, 5F

06/09 16:06, , 6F
最多就是要印的時候, 一開始前n個0可能不用印出來@_@"
06/09 16:06, 6F

06/09 16:08, , 7F
至於是N個亂數是使用者輸入的, 如果不用儲存那根本沒差.
06/09 16:08, 7F

06/09 16:08, , 8F
產生亂數與印出的部份直接給它跑N遍就行了XD
06/09 16:08, 8F
文章代碼(AID): #1ABViqMW (C_and_CPP)
文章代碼(AID): #1ABViqMW (C_and_CPP)