[問題] 產生N個不重複的數列

看板C_and_CPP (C/C++)作者 (-半糖回憶-)時間14年前 (2011/07/21 01:55), 編輯推噓4(402)
留言6則, 5人參與, 最新討論串1/4 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 小弟目前想產生有N個不重複的數列,但所顯示的結果跟預期的不同。 (目前N是設定為7) 餵入的資料(Input): 預期的正確結果(Expected Output): 4126537 錯誤結果(Wrong Output): 4720653 程式碼(Code):(請善用置底文網頁, 記得排版) for(g=1;g<=n;g++) { for(j=1;j<=n;j++) { temp = rand()%n+1; //一開始就隨機產生一個數字 for(k=1;k<=n;k++) { if(temp == jtemp[k]) //根據temp的值一直去找相同的數值 { j1 = temp; A1[j] = j1; jtemp[k] = 0; //另以找過的數字為0,為不找到重複的數值 printf("%.f ",A1[j]); break; } } } } 補充說明(Supplement): 根據小弟的想法認為值應該都會存進A1矩陣之中,應該是沒問題的。 煩請各位指點小弟一下迷津。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.217.101.12

07/21 01:57, , 1F
你陣列宣告 [7] 可以用的註標是 0~6...
07/21 01:57, 1F

07/21 02:29, , 2F
我看不出來每一個for-loop代表什麼意義.
07/21 02:29, 2F

07/21 02:30, , 3F
用過的數字做記號不再取, 應該可以縮減只用1個for-loop
07/21 02:30, 3F

07/21 02:46, , 4F
j1的意義何在?
07/21 02:46, 4F

07/21 03:02, , 5F
真的看不懂 j1, jtemp
07/21 03:02, 5F

07/21 06:18, , 6F
原波你要把各變數和陣列的原始定義列出來.
07/21 06:18, 6F
文章代碼(AID): #1E9nQI1d (C_and_CPP)
文章代碼(AID): #1E9nQI1d (C_and_CPP)