Re: [問題] 找規律

看板Inference (推理遊戲)作者 (小B)時間16年前 (2008/11/12 21:43), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串4/7 (看更多)
推 east101010:我寫個c語言程式跑出來的結果也是712是第三位仁兄 11/12 16:28 推 bluehaerts:樓上這位大大 我想看看C的程式 請問可以寄給我嗎 11/12 17:56 → bluehaerts:C的新手 不知道 要從哪下手 11/12 17:58 #include <stdio.h> #include <stdlib.h> #define SWAP(x,y) {int temp; temp = x; x = y; y = temp;} int main() { int i , j[1001] , a , b ; for (i = 1 ; i <= 1000 ; i++) j[i] = i ; do { for (i = 1 ; i <= 1000 ; i++) if (i % 3 == 0) j[i] = 9999 ; for (a = 1 ; a <= 1000 ; a++) for (b = 1 ; b <= 1000 ; b++) if (j[a] < j[b]) SWAP (j[a] , j[b]) ; } while (j[4] != 9999) ; for (i = 1 ; i <= 1000 ; i++) printf ("%d " , j[i]) ; system ("pause") ; return 0; } 我寫的很草率 大概解釋一下流程就是一開始先讓j陣列內第1項到第1000項的值分別設為1~1000 然後每當陣列是3的倍數的項,就設值為9999 接著用泡沫排序由小排到大, 也就是執行第一次的話,從陣列第667項之後的數字都會變成9999 執行第二次的話,從陣列第445項之後的數字都會變成9999 ... ... 這步驟就不斷重複 直到第4項的數字也是9999的時候 那就代表前3項是最後沒被我更改為9999的數字 最後再從陣列第1項印到第1000項 印出來會顯示 1 2 712 9999 9999 9999 9999 ... ... 9999 這樣我就知道是哪三個囉 第二題也可以靠寫程式去算出答案 不過我等等要去夜唱了 所以懶得思考哩= = 你可以嘗試寫看看XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.204.123.177 ※ 編輯: east101010 來自: 123.204.123.177 (11/12 21:46)

11/13 11:37, , 1F
我也是想到 泡沫排序 可是沒想到可以這樣應用
11/13 11:37, 1F
文章代碼(AID): #196js4fm (Inference)
討論串 (同標題文章)
文章代碼(AID): #196js4fm (Inference)