くだらない間違い
乱数作ってる時になんか問題が起きた。
srandに現在時刻与えて、範囲決めるために変数n読み込んで、発生した乱数を(n + 1)で割った数を出してたんですが、なぜか普通の32767以下の乱数が表示されてしまた。
作ってたプログラムのソース出したらややこしいので、問題の部分だけ抜き出してソース書いてみました。大体こんな感じ。
#include <ctime> #include <cstdlib> #include <iostream> using namespace std; int main(){ srand(time(NULL)); int n,random; random = rand() % (n + 1); cout << "ランダムな整数を作成します。範囲を決めてください。(0以上)"; cin >> n; cout << "作成された数は" << random << "です。\n"; return 0; }
これが問題のコード。
ググっても今一答えがでないので、色々試した結果が、
***略*** int n,random; cout << "ランダムな整数を作成します。範囲を決めてください。(0以上)"; cin >> n; random = rand() % (n + 1); ********
変数randomの値設定の位置がおかしかった・・・!!
なんという初心者。
別に乱数の記事にもならず、
超初歩的な間違いを晒して、落ちもなく終わり。
こんなことに30分くらい悩んでたってネタとして伝えたかったんです。ごめんなさい/(^o^)\