- 369 名前:デフォルトの名無しさん mailto:sage [2013/05/03(金) 11:46:29.37 ]
- 乱数について分からなくなってしまったのでご教授お願いします。
ゲーム用にある整数域の間でランダムな値を取りたくて、 関数を作っていたんですがなぜか返り値が固定されやがります。 しかもどの乱数に固定されているのか調べようとprintf仕込んだら、 今度は問題なく動いてくれちゃったりしてちんぷんかんぷんです。 できれば返り値を固定したくないのですが、どのようにしたらよいでしょうか? 以下、同じ状況を再現したコード。 #include <stdio.h> #include <stdlib.h> #include <time.h> int getrandom(int min,int max) { //printf("%d\n" , rand()); /* ←ここのコメントはずすと乱数が固定されない */ return ( min + (int)( (rand()/(1.0+RAND_MAX)) * (((double)(max-min)+1.0) ) ) ); } int main(void) { srand((unsigned int)time(NULL)); int x = getrandom(0,6); printf("%d\n" , x); return 0; }
|

|