【雑談】C/C++【その1】
■ このスレッドは過去ログ倉庫に格納されています
0085デフォルトの名無しさん
2006/06/10(土) 03:34:14デバッグトレースしてみて、ひどいことをしているのが露見。
rand()が返す値は、(0 - 32767)ではありません。(0 - RAND_MAX)の値なんです。
た ま た ま、VC++シリーズのstdlib.hが、#define RAND_MAX 32767 と書いてるだけの話
VC++で組んでたら、この間違いに気づかず、後で移植した時に大わらわになりやがりますw
stdlib.hの定数なんて、プラットフォームによって、まちまちな事が多いし、こういう事をするのは大変危険で恐ろしい大誤りです。
以下自分なりに考えた正答
上の例文の、最後の行を以下の様に直す
x=(double)a/((double)RAND_MAX+1);
これで正常に動作が確認できました。
一応理系の情報通信の教授から出された課題なんですが、その道のプロである人でも、こういうことやっちゃうんですね...
ちょっとこりゃないぜと思いました
皆さんどう思います?
■ このスレッドは過去ログ倉庫に格納されています