WindowsでDev C++ GCCコンパイラを使用しています。私は0と1乱数ジェネレータコードの問題
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int i,n;
int arr[50];
//int z=0,o=0;
//time_t t;
printf("Enter the no of binary random nos you want");
scanf("%d",&n);
//initializes the random number generator
srand(time(NULL));
//print the random numbers
printf("The random numbers are: ");
for(i=0;i<n;i++);
{
arr[i]=rand()%2;
printf("%d",arr[i]);
}
return (0);
}
で構成される10のランダムな数字を印刷し、私の乱数生成のため、このコードを使用ししかし、それは代わりに10の時に一つだけの乱数を出力する私のミスを指摘における任意の助けになりますあなたは
for(i=0;i<n;i++);
コード内で一つの問題を抱えている
for(i = 0; i
chux
デバッガの使用を開始します。あなたはすぐに分かったでしょう。 – Olaf
'rand'は線形合同ジェネレータとして実装されることが多いことに注意してください。LCGsは最後のビットで悪い動作をしていて、' rand()%2'を使って最後のビットをピックしています。真ん中からちょっと離れていて、 'rand'を避ける方が良いでしょう。 – pjs