私は0から9の間の乱数を作成する関数を作ったが、iループのインデックスi = 0のmain関数を呼び出すと、 i < n;私は+ +それは1つの乱数n種類を印刷します。しかし、私は異なる値をn回印刷する必要があります。ここ は私が作ったコードである: -cの関数でrand()を使用する
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void random_variable() {
int i;
srand(time(NULL));
i = rand()%10;
printf("%d ",i);
}
main() {
for(int j=0;j<10;j++) {
random_variable();
}
}
出力はこれです: - : here instead of 8 ten times i needed 10 different values
ループ内の 'srand'をやり直さないでください。ループする前に一度やってください。それが再シードされる原因になります。そして、それが10倍も速くループすることができるので、毎回同じ値に再シードされます。私はここで 'ランド 'の不足に陥ることはありません。 – Steve