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

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

解決済みの質問

乱数について

Visual Studio2008を使っています。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

intmain(void){
inti;

srand(time(NULL));
i=rand();
printf("%d\n",i);
return 0;
}
乱数を作るために上のようなプログラミングを作りました。
これを「ソリューションのビルド」すると
【warning C4244: '引数' : 'time_t' から 'unsigned int' への変換です。データが失われる可能性があります。】
と出ます。
このまま行っても乱数が出来るのですが
どうしたらいいのでしょうか?
8行目を
srand(time_t(NULL));
srand((unsigned)time(NULL));
と変えればいいのでしょうか?
time_tでやると乱数が同じ値しか出てきません。

教えてください。

投稿日時 - 2008-09-28 16:45:05

QNo.4362906

困ってます

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

time()関数の帰り値はtime_t型。
srand()関数の引数はunsigned int型。
なので、型が違う事のワーニングです。

unsigned int型にキャストするのが一般的です。

投稿日時 - 2008-09-28 16:52:30

お礼

回答ありがとうございます。
違いがようやく分かりました。

投稿日時 - 2008-09-28 18:17:00

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

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

回答(2)

ANo.2

> time_tでやると乱数が同じ値しか出てきません。

どんなコードを書かれたのですか?

> プログラミングを作りました。

プログラムを作る(書く)ことをプログラミングといいます。
プログラミングを作る、とはいいません。

投稿日時 - 2008-09-28 17:31:39

お礼

>プログラムを作る(書く)ことをプログラミングといいます。
すいません、間違えてしまいました。
御指摘ありがとうございます。

投稿日時 - 2008-09-28 18:19:27

あなたにオススメの質問