
No.2ベストアンサー
- 回答日時:
#include <stdio.h>
#include <stdlib.h>
#define N 52
typedef struct Card_ {char* suit; char* number;} Card;
Card* make_deck(Card* array, size_t size) {
for (size_t i = 0; i < size; i++) {
switch (i % 4) {
case 0: array[i].suit = "Diamonds"; break;
case 1: array[i].suit = "Hearts"; break;
case 2: array[i].suit = "Spades"; break;
default: array[i].suit = "Clubs"; break;
}
switch(i % 13) {
case 0: array[i].number = "Ace"; break;
case 1: array[i].number = "Two"; break;
case 2: array[i].number = "Three"; break;
case 3: array[i].number = "Four"; break;
case 4: array[i].number = "Five"; break;
case 5: array[i].number = "Six"; break;
case 6: array[i].number = "Seven"; break;
case 7: array[i].number = "Eight"; break;
case 8: array[i].number = "Nine"; break;
case 9: array[i].number = "Ten"; break;
case 10: array[i].number = "Jack"; break;
case 11: array[i].number = "Queen"; break;
default: array[i].number = "King"; break;
}
}
return array;
}
Card* shuffle(Card* array, size_t size) {
int x;
Card tmp;
for (size_t i = 0; i < size; i++) {
x = rand() % size;
tmp = array[i];
array[i] = array[x];
array[x] = tmp;
}
return array;
}
int main(void) {
Card array[N];
Card* deck = shuffle(make_deck(array, N), N);
for (int i = 0; i < N; i++) {
printf("%s of %s\n", deck[i].suit, deck[i].number);
}
return EXIT_SUCCESS;
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
政治
-
メールアドレスのこの棒って、...
-
政治家は国民から過剰に税金を...
-
VIPとCIPラウンジ
-
そもそもの不正の温床である、...
-
ギャル語や略語かもしれません...
-
政治家女子党とツイフェミは、...
-
日本はアメリカの植民地になっ...
-
習近平の学歴・学識・学力、そ...
-
ローマ字入力:マクロンの出し...
-
1990年代の政治について。
-
アメリカ大統領は文字が読めな...
-
娘夫婦がユダヤ人でイスラエル...
-
偉人の敬称
-
彼氏や彼女と政治の話をするこ...
-
東大教授 姜尚中 先生 につ...
-
国のトップのことをまとめて言...
-
トランプ占いの本
-
「さコンビニでキレたら警察呼ば...
-
どうしてトランプ支持者が暴れ...
おすすめ情報