13/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;
}