我写了一些代码来生成4个随机数。
任何人都可以帮我使用相同的代码但是将它们打印成字符串吗?
以下是代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int num, i;
srand(time(NULL)); // Seed ONCE
for(i=0; i<4; ++i) // Loop 4 times for random numbers
{
num = rand();
num = num % 10;
printf("%d\t", num);
}
return 0;
}
答案 0 :(得分:2)
您可以用此替换for
循环。它打印4个随机数字作为字符串:
printf("%04d\n", rand()%10000);
或者,如果您想要一个结果字符串,比如s
,那么您可以打印或比较:
char s[4+1];
sprintf(s, "%04d", rand()%10000);
printf("%s\n", s);
正如@anatolyg指出的那样,如果你需要,可以在这里嵌入\t
个字符的简短方法:
char s[4+1];
sprintf(s, "%d\t%d\t%d\t%d", rand()%10, rand()%10, rand()%10, rand()%10)
printf("%s", s);
并且厨房接收器回答...如果你想要一个字符串(s
),那么你需要在每个数字后面嵌入\t
个字符,如果你想要一些灵活性要改变所需的位数,那么这是一种方式。可能有一种更短的方法来编写这个,但我希望它正在做的事情是清楚的。 (在顶部,删除#define DIGITS (4)
或您需要的任何计数。)
int bufsize = DIGITS*2+1;
char s[bufsize];
s[--bufsize] = 0;
while (bufsize) {
s[--bufsize] = '\t';
s[--bufsize] = '0'+rand()%10;
}
printf("%s", s);