渡された値の和を返す関数 add() を以下のように作りました.3桁の正の整数を乱数により2個発生させ,その和を求めるプログラムを add() を使って作りましょう.
int add(int x, int y) { return x + y; } |
513 + 890 = 1403 |
C言語における関数というものの知識がほとんどない状態で前回演習を行ったことも理解しにくい原因だったかもしれません.ということで,数学関数をまず使う練習をしてみましょう.三角関数や指数関数などはあらかじめ用意されています.ここでは三角関数の一つである sin() を使ってみましょう.
#include <math.h> |
のように,数学関数ライブラリをまず読み込んでおく必要があります.また,コンパイル時に
$ cc sin.c -lm
のように,オプション lm をつける必要があります. link mathの略ですね.
* * * * * * * * * * * * * * |
縦に行を送る変数 x は0から6.5まで0.5刻みで増加させています.また,横に進む変数 y は int型で, sin(x)の値がy-0.5とy+0.5の間に入ればアスタリスクを表示させます.ただし,sin(x)の値は10倍しています.また,2重の for 文を使用しています.
このプログラムは自分で関数を作る必要はありません.ただ,関数 sin() を使用するだけです.
2〜20までの整数を乱数により一つ発生させ,それが素数かどうかを判定するプログラムにおいて,判定結果の表示を行う部分をvoid型関数 prime() で行うようにしましょう.
3 is a prime number. |
12 is not a prime number. |
戻り値はありません.
先ほどの素数判定について,関数から戻り値がある形式に変更しましょう.
6桁の正の整数を乱数により一つ発生させ,その各位の数字を順に表示するプログラムにおいて,その表示部分をvoid型の関数に分けて行うものを作成しましょう.
348545: 3 4 8 5 4 5 |
関数に処理を分けると,元の数はそのまま残すことができます.
3桁の正の整数を乱数により1つ発生させ,その数に一番近い素数を,その数よりも大きいものと小さいものそれぞれ探索するプログラムを作成しましょう.探索部分をそれぞれ2つの関数にします.
578 The nearest prime number below it: 577 The nearest prime number above it: 587 |