前提・実現したいこと
C言語で12つの選択肢から一つをランダムに選ぼうとするコードを書いても毎回同じになってしまう。
発生している問題・エラーメッセージ
該当のソースコード
c
1 2#include<stdlib.h> 3#include<stdio.h> 4#include<time.h> 5 6int GetRandom(int min,int max); 7int main(){ 8 9 int ran,min=0,max=11; 10 ran = GetRandom(min,max); 11 12 /*結果発表*/ 13 printf("<%d>が選ばれました\n",ran); 14 system("pause"); 15 16 return 0; 17} 18 19/*乱数取得用*/ 20int GetRandom(int min,int max) 21{ 22 static int flag; 23 24 if (flag == 0) { 25 srand((unsigned int)time(NULL)); 26 flag = 1; 27 } 28 29 return min + (int)(rand()*(max-min+1.0)/(1.0+RAND_MAX)); 30} 31
output
1<0>が選ばれました
試したこと
time()関数を使ってrand関数の初期値?(引数の値?)を指定しているはずなのですが、毎回同じ数値が出力されます。
以下のサイトを参考にしております
苦しんで覚えるC言語
コピペして動かしてみましたがちゃんと違う値になりました(ideone)
環境を追記してください
回答3件
あなたの回答
tips
プレビュー