[解決済み】rand()+rand()で負の数が出るのはなぜ?
2022-03-28 20:33:24
質問
私は、次のことを観察しました。
rand()
ライブラリ関数をループ内で1回だけ呼び出すと、ほとんどの場合、正の数が出力されます。
for (i = 0; i < 100; i++) {
printf("%d\n", rand());
}
しかし、2つの
rand()
を呼び出すと、生成される数字に負の数が多くなる。
for (i = 0; i < 100; i++) {
printf("%d = %d\n", rand(), (rand() + rand()));
}
なぜ2番目のケースでマイナスの数字が表示されるのか、どなたか説明してください。
追記:ループの前にseedを初期化しています。
srand(time(NULL))
.
解決方法は?
rand()
の間の整数を返すように定義されています。
0
と
RAND_MAX
.
rand() + rand()
がオーバーフローする可能性があります。あなたが見ているものは、おそらく 未定義の動作 整数のオーバーフローが原因です。
関連
-
[解決済み] テスト
-
[解決済み] Objective-Cで乱数を発生させる
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] JavaScriptで特定の範囲のランダムな整数を生成する?
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] JavaScriptで2つの数値の間の乱数を生成する
-
[解決済み] ランダムな文字列を使用するこのコードは、なぜ "hello world" と表示されるのですか?
-
[解決済み] 配列の場合、なぜ a[5] == 5[a] になるのでしょうか?
-
[解決済み] C言語における「static」の意味とは?
-
[解決済み] Cプリプロセッサはなぜ "linux "という単語を定数 "1 "と解釈するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C 言語の添え字で配列の要素値を代入すると、配列でもポインタでもベクトルでもない値になる
-
[解決済み】Cコンパイルエラーです。Idは1終了ステータスを返した
-
[解決済み】デバッガgdbの使用時に不明な終了シグナルが発生する。
-
[解決済み】 strcpyとstrdupの比較
-
[解決済み】Cygwin - Makefile-error: ターゲット `main.o' のレシピに失敗しました。
-
[解決済み] struct で "warning: useless storage class specifier in empty declaration" (警告: 空の宣言での無駄なストレージクラス指定子)
-
[解決済み】ヒープ割り当てで初期化されていない値が作成された
-
[解決済み] テスト
-
[解決済み】配列型char[]が代入できない [重複]。
-
[解決済み】乱数を中央にフォーカスして取得する