这里是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 从我的数组中选择? 感谢
答案 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
,因为rank
和suit
是字符数组。