- ベストアンサー
乱数について
Visual Studio2008を使っています。 #include<stdio.h> #include<stdlib.h> #include<time.h> int main(void){ int i; 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でやると乱数が同じ値しか出てきません。 教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
time()関数の帰り値はtime_t型。 srand()関数の引数はunsigned int型。 なので、型が違う事のワーニングです。 unsigned int型にキャストするのが一般的です。
その他の回答 (1)
- asuncion
- ベストアンサー率33% (2127/6289)
> time_tでやると乱数が同じ値しか出てきません。 どんなコードを書かれたのですか? > プログラミングを作りました。 プログラムを作る(書く)ことをプログラミングといいます。 プログラミングを作る、とはいいません。
お礼
>プログラムを作る(書く)ことをプログラミングといいます。 すいません、間違えてしまいました。 御指摘ありがとうございます。
お礼
回答ありがとうございます。 違いがようやく分かりました。