2桁の正の整数のどれか一つを乱数を利用して発生させて表示させましょう.2桁の整数とは10から 99までですので,全部で何種類あるか考えてから準備してください.以下のよう に結果を表示することにしましょう.
Obtained random number: 22 |
表示させるための命令の部分は以下に示すように一度乱数の値を変数に入れてからにしてみましょう.
printf("Obtained random number: %d\n", num); |
二桁の整数を得るもう一つの考え方として,必要な数の最小値と最大値から考えることもできます.二桁の整数の最小のものは10ですが,剰余は割り切れる場合0になる可能性がありますので,解答例
rand() % 何かの数 + 10;
のように最後に10を加える必要があります.また,そうすると,二桁の整数の最大のものは99ですので,10を引いて89まで乱数として出てくるようにしないといけません.余りの最大値が89ということはどんな数で割ればよいでしょうか? これは簡単ですね.
3桁の正の整数,そして4桁の正の整数をそれぞれ一つずつ乱数を利用してランダムに表示させるプログラムを作成しましょう.
アルファベットの文字コードは,65~90が大文字のA~Zに,97から122が小文字のa~zに対応しています.大文字のアルファベットをどれか1つと,小文字のアルファベットどれか1つを,乱数を用いて以下のように表示するプログラムを作成しましょう.
Upper case letter: V Lower case letter: q |
数値を %c を使って出力すると,その数値に対応する文字が表示されます.文字はコンピュータ内部では文字コードという数値で表現されているので,そのような動作になります.解答例
大文字もしくは小文字のアルファベットを1文字乱数を用いて以下のように表示するプログラムを作成しましょう.
Randomly chosen letter: B |
なかなか思いつかない発想だと思います.どう考えれば良いのか,悩んでください:-P)
-10から10までの範囲の整数をどれか一つ乱数により発生させてください.
Random number between -10 and 10: -2 |
3桁の正の整数を1つ乱数により発生させます.次に,その数よりも大きい3桁の整数をまた乱数により発生させてください.さらに,2番目の数よりも大きな乱数をもう1回発生させるプログラムを作成しましょう.
1st random number: 530 2nd random number: 996 3rd random number: 998 |
発生させる乱数の設定がかなり難しいですが,よく考えてください.ただし,2回目までに999が出てしまうと動作がおかしくなると思いますが,滅多に無いことなのでそれは諦めてください.現段階までで習った情報ではそれは回避できません.解答例
乱数を発生させる関数 rand() は整数しか取り扱えません.そこで,実数の乱数を用意するためには,得られた整数を加工する必要があります.-1から1の範囲で少数第2位までの実数を乱数で発生させる方法を考えてみましょう.
Obtained random number: -0.49 |
まずは乱数により整数を用意して,それを小数に変換するという手順になります.キャスト演算子を使うと簡単です.解答例