从数组中分配随机条目

时间:2012-10-17 04:23:33

标签: c

这里是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 从我的数组中选择? 感谢

3 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

%仅适用于数字。所以,您可以%通过每个数组的大小来获取索引,然后索引到数组中:

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

答案 2 :(得分: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而不是%d,因为ranksuit是字符数组。