看板 C_and_CPP 關於我們 聯絡資訊
原文恕刪.. 我覺得可能看底下的 code 你會比較清楚一些.. #include <stdio.h> #include <stdlib.h> #include <time.h> #define MAX 1024 #define N 5 int main() { srand(time(NULL)); int i, pos1, pos2, tmp; int Poker[MAX] = {0}; // 0- MAX-1 之撲克牌 int Pick[N] = {0}; // 從0-MAX-1, 挑出N個不重複數字 // 1. 產生 poker, 0~MAX-1 for(i=0; i<MAX; i++) Poker[i]=i; // 2. 開始對 poker 洗牌, 洗 MAX 次 for(i=0; i<MAX; i++){ pos1 = rand() % MAX; // 挑到第pos1張 pos2 = rand() % MAX; // 挑到第pos2張 // 將第pos1張與pos2張對換, 共換了 MAX 次 tmp = Poker[pos1]; Poker[pos1] = Poker[pos2]; Poker[pos2] = tmp; } // 3. 最後從MAX張poker中,發前N張牌出來 for(i=0; i<N; i++) Pick[i]= Poker[i]; // 4. 看有哪 N 張牌 for(i=0; i<N; i++) printf("%d ", Pick[i]); return 0; } 以上 請參閱.. -- YouLoveMe() ? LetItBe() : LetMeFree(); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.177.76.142
tropical72:= = 上一帖有解答了.. 10/31 17:58
※ 編輯: tropical72 來自: 180.177.76.142 (10/31 17:59)
rex921:還是謝謝你@@ 10/31 18:06