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桁の正の整数をそれぞれ一つずつ乱数を利用してランダムに表示させるプログラムを作成しましょう.
2から9までの整数を2つ乱数で発生させて,それらの和と差を求めるプログラム を作りましょう.表示は以下のようにしてください.
Obtained random number: 5 and 9 Sum of them: 14 Difference between them: -4 |
-10から10までの整数をどれか一つ乱数で発生させるプログラムを作ってみましょう.
2桁の正の整数( m )と1桁の正の整数( n )を乱数を用いて1つずつ発生させ, m の値を n ずつ増やしていくことを3回繰り返し,以下のように表示するプログラムを作ってみましょう.
m = 87, n = 8 m -> 95 m -> 103 m -> 111 |
4桁の正の整数を乱数により1つ発生させ,その数を1000で割ったあまり,またそのあまりを100で割ったあまり,さらにそのあまりを10で割ったあまり,と,順に求めていくプログラムを作成しましょう.ただし,変数は乱数の値を格納するものともう1つの2つで作ります.
Random numberr: 7782 782 82 2 |
3桁の正の整数を乱数により一つ発生させ,その100の位,10の位,1の位の数を順に表示するプログラムを以下の例を参考に作成しましょう.ただし,変数は m と n の2個だけ使用します.
#include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { srand((unsigned) time(NULL)); int m = rand() % 900 + 100; int n = 100; printf("Obtained number: %d\n", m); |
ここに3行(3つの作業なので,行数は毎回改行するとしたら3行になる)の処理を入れ,それとまったく同じ処理をあと2回繰り返す. 作業の内の一つは printf で,あとの2つは複合演算子を用いて変数の値を変える作業. |
return 0; } |
Obtained number: 938 9 3 8 |
除算と剰余算の組み合わせで実現します.変数 n の使い方が鍵です.解答例