看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《rex921 (小雷)》之銘言: : int f1,f2,x[5],f3; : for(f1=0;f1<=4;f1++){ : x[f1]=f1; : } x[] 的內容是 {0, 1, 2, 3, 4} : for(f1=0;f1<=4;f1++){ : f2=rand()%(5-f1); : cout <<x[f2]<<"\t"; : for(f3=f2;f3<=4;f3++){ : x[f3]=x[f3+1]; : } : } : 紅色那段,看不懂他的用意 : 上來請教@@ (1) 在五個數裡面,任挑一個0至4的數字f2,並輸出x[f2] 假如f2是1, 那就輸出x[1]=1 (2) 從f2開始,把x[f2]至x[4]的數字都往前移一個位置 如果f2是1,就是f[1]=f[2],f[2]=f[3],f[3]=f[4] 結果x就會變成{0, 2, 3, 4, 4}, 這個步驟就把已經挑出的1給移除掉 (3) 這個時候f1會遞增成1,f2就變成一個0至3的隨機數字,並輸入x[f2] (4) 同上述的(2),把x[f2]=x[f2+1], x[f2+1]=x[f2+2] ... 因此,每次挑過的數字就會被蓋掉,而挑選的範圍也會越來越小 最後所有的數字都挑完,這個程式也就結束了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.171.46 ※ 編輯: james732 來自: 140.117.171.46 (10/31 17:45)
rex921:謝謝大大的指點@@ 10/31 17:47
※ 編輯: james732 來自: 140.117.171.46 (10/31 17:56)
loveme00835:我發現x[5]怪怪 XD 10/31 18:17
rex921:是超出定義的大小,好像對結果沒影響@@ 10/31 18:19
tropical72:真的怪怪的..x[f3+1] 會出現 x[5] 10/31 18:24