今日からは関数を取り上げます.
C言語の関数の役割は,プログラムで頻繁に使われる部分を,一つのグループとして扱いやすくする仕組みです.
材料(引数)を渡すと,レシピ(関数の定義)に基づいて調理し,料理(戻り値)を届けてくれる.
例:二つの数を入力すると,その和を表示するプログラムを作ってみよう
普通 | 関数版 |
#include <stdio.h> void main() { int a, b, sum; printf("一つ目の数を入力してください:"); scanf("%d", &a); printf("二つ目の数を入力してください:"); scanf("%d", &b); sum = a + b; /* 和を求める */ printf("二つの数の和は,%dです.",sum); } |
#include <stdio.h> int wa(int c, int d) /* 二つの数の和を求める関数の定義 */ { int x; x = c + d; return x; } void main() { int a, b, sum; printf("一つ目の数を入力してください:"); scanf("%d", &a); printf("二つ目の数を入力してください:"); scanf("%d", &b); sum = wa(a, b); /* 関数を呼び出す */ printf("二つの数の和は,%dです.",sum); } |
関数を用いる場合,
printf("二つの数の和は,%dです.", wa(a, b));
と書くこともできます.
戻り値を持たない関数の例
#include <stdio.h> void wanohyouji(int a, int b) /* 二つの数の和を求め表示する関数の定義 */ { int x; x = a + b; printf("二つの数の和は,%dです.", x); } void main() { int a, b, sum; printf("一つ目の数を入力してください:"); scanf("%d", &a); printf("二つ目の数を入力してください:"); scanf("%d", &b); wanohyouji(a, b); }
・長方形の二辺の長さを渡すと,面積を戻す関数を作成してみよう.
・円の半径を渡すと,面積を戻す関数を作成してみよう. 面積は,実数であることに注意.
ある数 n の階乗 n! を求めるプログラムを,関数を用いて作成せよ
ただし,0! = 1 であることに注意.
Oh-o! Meijiのレポートから(第6回)のところへ,演習で作成したプログラムを送る.プログラムには必ず,学年,組,番号,氏名を記入すること.