(C言語)全ての数値が被らなくなるまで乱数を生成して配列に格納する方法
下記のコード(mainやincludeの部分は省略してます)で実行するとprintfが出力されず、プログラムも最後まで動かなくて止まりません。
コンパイルでは成功してて警告やエラーも出てません。
ずっと考えて少しずつ修正を加えたり試してるのですが、全然作れそうにないです。
どうすればタイトルのような機能を作れますか?
コード:
int len = 63;
int place[len];
struct timeval tv;
for(int i=0; i<len; i++) {
gettimeofday(&tv, NULL);
srand((unsigned int)tv.tv_sec * ((unsigned int)tv.tv_usec + 1));
place[i] = rand() % 62;
}
int f=0;
for(int i=0; i<len; i++) {
while(1) {
f=0;
for(int j=0; j<i; j++) {
if(place[i] == place[j]) f=1;
}
if(f==1) {
gettimeofday(&tv, NULL);
srand((unsigned int)tv.tv_sec * ((unsigned int)tv.tv_usec + 1));
place[i] = rand() % 62;
} else {
printf("%d ", place[i]);
break;
}
}
}