標準のヘッダファイルに加えて,以下の2つをインクルードする必要があります ので,必ず記入しておいてください.
#include <stdlib.h> #include <time.h> |
乱数は一度作られるとその順番が決まってしまいます.そこで,実行する度にそ の順番をシャッフルしないといけません.そのための命令を最初に書いておきま す.これは一つのプログラムの中に1回あればそれで構いません.
srand((unsigned) time(NULL)); |
今の時点で意味は分からないとは思いますが,unsigned とは符号無し の数(正の数)で,コンピュータ内の時計を利用して毎回違う数字を発生させるた めに,時間の関数である time を使っています.
乱数は以下の関数で発生させられます.
rand(); |
ただし,このとき発生する乱数は扱える最大の桁の整数になってしまいます.そ こで以下に示すように剰余を使用して範囲を限定します.
例えば,サイコロの目ですと全部で6種類なので6で割った余りを活用します.注 意するのは6で割った余りは0から5までなので,サイコロにするには1を加えて1 から6にする必要があることです.そこで,先ほどの例のようになるわけです.
rand() % 6 + 1; |
2桁の整数を乱数を利用して発生させて表示させましょう.2桁の整数とは10から 99までですので,全部で何種類あるか考えてから準備してください.以下のよう に結果を表示することにしましょう.
Obtained random number: 24 |
2から9までの整数を2つ乱数で発生させて,それらの和と差を求めるプログラム を作りましょう.表示は以下のようにしてください.
Obtained random number: 5 and 9 Sum of them: 14 Difference between them: -4 |
四則演算では無いですが,変数に代入した値を「入れ換える」操作を考えてみま しょう.次に示すプログラムの途中に入れ換えの式を入れて完成してください.
#include <stdio.h> main() { int m, n, tmp; m = 1; n = 2; printf("m = %d and n = %d\n", m, n); |
ここに入れ換えの処理を入れる |
printf("Exchange the values of m and n\n"); printf("m = %d and n = %d\n", m, n); return(0); } |
m = 1 and n = 2 Exchange the values of m and n m = 2 and n = 1 |
2桁の整数を乱数で発生させ,それを正四角錐底辺の長さと高さとします.正四 角錐の体積を求めましょう.当然ですが,正四角錐の体積 V を求める公式は,底辺 の長さを l ,高さを h とすると,
1
V = --- h l2
3
です.なお,C言語におけるべき乗ですが,演算子は用意されていません.かけ算 を繰り返すか,<math.h> をインクルードして関数 pow() を使 用することになります.ここでは,単純にかけ算で行いましょう.
Volum of the quadrangular pyramid with the base and height 17 is 1637 |