引用 | 編輯
kyahm
2008-11-30 15:28 |
樓主
▼ |
||
x0
這是我們的作業,可是寫了好久都寫不出來..... 想請各位大大幫幫忙, 感激不盡.... 題目如下... 通用以下程式改寫發10張牌,將其所有點數相加printf出來.... 重點:洗牌, 發10張牌, 點數相加...(*要用C寫喔. 謝謝~*) #include<stdio.h> #include<stdlib.h> #include<time.h> void shuffle(int wdeck[]); void deal(const int wdeck[],const char *wface[], const char *wsuit[]); int main () { const char *suit={"H","D","C","S"}; const char *face={"ace","deuce","three","four","five","six", .. 訪客只能看到部份內容,免費 加入會員 x0
|
引用 | 編輯
teldeanmac85
2008-12-02 01:25 |
1樓
▲ |
複製程式
#include <stdio.h> #include <time.h> #include <stdlib.h> #define N 52 int main(int argc, char* argv[]) { int poker[N], sum = 0; int i, j, tmp, remain; // 初始化陣列 for(i = 0; i < N; i++){ poker[i] = i; } srand(time(0)); // 洗牌 for(i=0;i<N;i++){ j = rand() % N ; tmp = poker[i]; poker[i] = poker[j]; poker[j] = tmp; } for(i = 0; i < 10; i++) { // 判斷花色 switch((poker[i] / 13)) { case 0: printf("H"); break; case 1: printf("D"); break; case 2: printf("C"); break; case 3: printf("S"); break; } // 撲克牌數字 remain = (poker[i] % 13)+1; //點數相加 sum = sum + remain; switch(remain) { case 13: printf("K "); break; case 12: printf("Q "); break; case 11: printf("J "); break; default: printf("%d ", remain); break; } } printf("\n"); printf("SUM : %d\n",sum); return 0; } ////////////////////////////////////// C6 D8 H6 DQ C1 D4 CJ D7 C2 SJ SUM : 68 ////////////////////////////////////// 作法 : 52張牌 填進 poker[52] = 0~51 poker / 13 => row (poker % 13) +1 => col (必須+1 shift 1~52) x0 |