1

ここで C を初めて使用します。配列からランダムに選択して文字列を初期化しようとしています。障害物にぶつかりました。これが私がこれまでに持っているものであり、これを行うためのより良い方法があるかもしれません.

基本的に、ランごとにランダムなカード (ランクとスーツ、kC = キング オブ クラブ) を表示しようとしています。

#include <stdio.h>
#include <time.h>
#include <string.h>

int main()

{
char rank[13] = {'a','2','3','4','5','6','7','8','9','t','j','q','k'};
char suit[4] = {'C','D','H','S'};
int first;
int second;

srand(time(NULL));

                first = rand()%rank;
                second = rand()%suit;

        printf("Your Card: %d %d", first, second);


return 0;

私が試みているように、 randが配列をランダム化できないと思われますが、 randに配列から選択するように指示する方法はありますか? ありがとう

4

3 に答える 3

1
#include <stdio.h>
#include <time.h>
#include <string.h>

int main()
{
    char rank[13] = {'a','2','3','4','5','6','7','8','9','t','j','q','k'};
    char suit[4] = {'C','D','H','S'};
    int first;
    int second;

    srand(time(NULL));

    first = rand() % 13;
    second = rand() % 4;

    printf("Your Card: %c %c", rank[first], suit[second]);

    return 0;
}
于 2012-10-17T04:32:42.233 に答える
0

%数字に対してのみ機能します。したがって、%各配列のサイズでインデックスを取得してから、配列にインデックスを付けることができます。

first = rank[rand()%13];
second = suit[rand()%4];
于 2012-10-17T04:26:44.007 に答える
0
#include <stdio.h>
#include <time.h>
#include <string.h>
#include <stdlib.h>

int main()

{
char rank[13] = {'a','2','3','4','5','6','7','8','9','t','j','q','k'};
char suit[4] = {'C','D','H','S'};
int first;
int second;

srand(time(NULL));

                first = rank[(rand()%13)];
                second = suit[rand()%4];

        printf("Your Card: %c %c", first, second);


return 0;
}

あなたのステートメントでは、以来の代わりにprintf使用する必要があり、文字の配列です。%c%dranksuit

于 2012-10-17T04:31:55.430 に答える