0から40(両端を含む)の乱数を生成しようとしています。だから私が実装したコードはこれです-
y=rand()%41;
ただし、[コンパイル]をクリックして[実行]をクリックするたびに。同じ乱数を出力します。たとえば、私はこれをループで実行しました。
for(i=0;i<4;i++)
{
y=rand()%41;
printf("%d ",y);
}
毎回、出力は同じ4つの数値です。常に端末に14.2などを出力します。何があっても。
だから私の最初の質問は、なぜこれが起こっているのですか?
次に、Cで乱数ジェネレーターはどのように機能しますか?
time.hライブラリが含まれているので、システム時刻を使用した標準的なアルゴリズムによって数値が生成されると思いました。また、システム時刻は絶えず変化しているため、プログラムを実行するたびに生成される数値も変化するはずです。