みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

RAND_MAXの最大値について

/*
YouTubeのC入門系動画に乱数の話があり真似てみたところ、動画では2147483647まで出力されているのですが、 私の環境では32767までしか出力されません。
この最大値の違いは、どうして出るのでしょうか?
また、私の環境で最大値2147483647まで出せるようになりますか?または、出せる方法があるなら教えてください。
よろしくお願いします。
*/
cpu i5 3570
memory 32GB
OS Windows 10 pro 64bit
Microsoft Visual Studio Community 2015
*/
#include <stdio.h>
#include <stdlib.h>
int main(void) {
printf("MAX : %d\n", RAND_MAX);
return 0;
}

投稿日時 - 2017-01-22 11:00:18

QNo.9284330

暇なときに回答ください

質問者が選んだベストアンサー

値は処理系依存です。下記によればVisual Cだと0x7FFFということなので、
https://msdn.microsoft.com/ja-jp/library/2dfe3bzd.aspx

・Visual C以外のCを使う
・自分でそういうランダム関数を作る

のどちらかしかありません。

投稿日時 - 2017-01-22 11:57:01

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

間違っているね。
#include <stdio.h>
#include <stdlib.h>
int main(void) {
printf("MAX : %ld\n", LONG_MAX);
return 0;
}
これでいいはず。32ビット(4バイト)と64ビット(8バイト)の違いでした。

投稿日時 - 2017-01-22 11:15:13

ANo.1

intは処理系に依存して4ビットか8ビットと差があります。
longにすれば問題は解決します。

投稿日時 - 2017-01-22 11:02:12

あなたにオススメの質問