OpenVMS を使用して C で開発しています。1001 (0 ~ 1000) 要素の配列、1000 (0 ~ 999) の 0 ~ 50 の乱数を入れるコードを作成しました。コードは次のとおりです。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main(){
int vet[1000], fre[50];
int i;
srand(time(NULL));
for(i=0;i<1000;i++){
vet[i]=(rand()%51);
}
for(i=0;i<1000;i++){
printf("%d\n", vet[i]);
}
for(i=0;i<1000;i++){
fre[vet[i]]=fre[vet[i]]+1;
}
for(i=0;i<51;i++){
printf("The number %d was generated %d times\n", i, fre[i]);
}
}
各数値が生成された回数を表示すると、50 という数値が大きく、時には他の数値の 2 倍以上になることがわかりました。誰か助けてください。
解決済み 機能するコード今のところ srand() を使用する必要があります
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
main(){
int vet[1000], fre[51] = {0};
int i;
srand(time(NULL));
for(i=0;i<1000;i++){
vet[i]=(rand()%51);
}
for(i=0;i<1000;i++){
printf("%d\n", vet[i]);
}
for(i=0;i<1000;i++){
fre[vet[i]]=fre[vet[i]]+1;
}
for(i=0;i<51;i++){
printf("The number %d was generated %d times\n", i, fre[i]);
}
}
[EOB]
皆さん、ありがとうございました