・p.144「関数呼出し」から
p.143 関数定義(再掲載)
・プログラマが自前の関数を追加したい場合、main関数とは別に記述する
・定義書式: 返却値型 関数名(仮引数並び){内容}
・C言語の関数は「データを0個以上与えると、なにかを行って、データを0または1個返す」
・この、返す値の型が「返却値型」になる
・また、関数が受け取る0個以上の値を示すのが「仮引数並び」になる
・例えば、整数2値の和を整数で返す関数addであれば:
int add(int a, int b) { retrn a + b; }
・この例のaとbを仮引数といい、関数側で受け取るために適当な名前をつけて用いる
・複雑で複数回呼ばれる処理であれば、関数にするメリットが大きい。
p.144 関数呼出し
・定義済の関数は「関数名(引数,…)」で呼び出す=利用することができる
・この時、引数名を意識する必要はなく、型と引数の数が合っていれば良い
・例えば、整数2値の和を整数で返す関数addであれば:
int add(int a, int b) { retrn a + b; }
⇒ add(1, 2); とか、 int x = 5; add(x, 6); などと呼び出せる。
p.144 list0601.cpp
//p.144 list0601.cpp 二つの整数の大きいほうの値を求める
#include <stdio.h>
//--- 大きいほうの値を返す ---//
int max2(int a, int b) //戻り値型はint、引数がint×2
{
if (a > b) //aの値の方が大きければ
return a; //aの値を返す
else //でなければ
return b; //bの値を返す
}
int main(void)
{
int n1, n2;
puts("二つの整数を入力せよ。");
printf("整数1:"); scanf("%d", &n1);
printf("整数2:"); scanf("%d", &n2);
printf("大きいほうの値は%dです。\n", max2(n1, n2)); //関数に2変数の値を渡して戻り値を表示
return 0;
}
アレンジ演習:p.144 list0601.cpp
・関数max2(n1, n2)の戻り値をいったんint型の変数mで受け取ってから表示しよう
作成例
//アレンジ演習:p.144 list0601.cpp 二つの整数の大きいほうの値を求める
#include <stdio.h>
//--- 大きいほうの値を返す ---//
int max2(int a, int b) //戻り値型はint、引数がint×2
{
if (a > b) //aの値の方が大きければ
return a; //aの値を返す
else //でなければ
return b; //bの値を返す
}
int main(void)
{
int n1, n2;
puts("二つの整数を入力せよ。");
printf("整数1:"); scanf("%d", &n1);
printf("整数2:"); scanf("%d", &n2);
int m = max2(n1, n2); //関数に2変数の値を渡して戻り値(最大値)を得る
printf("大きいほうの値は%dです。\n", m); //最大値を表示
return 0;
}
p.147 演習6-1 ex0601.cpp ヒント
・VC++の置換機能を用いてmax⇒min、大きい⇒小さい、最大⇒最小 などの変更をもれなく行うこと
作成例
//p.147 演習6-1 二つの整数の小さいほうの値を求める
#include <stdio.h>
//--- 小さいほうの値を返す ---//
int min2(int a, int b) //戻り値型はint、引数がint×2
{
if (a < b) //aの値の方が小さければ
return a; //aの値を返す
else //でなければ
return b; //bの値を返す
}
int main(void)
{
int n1, n2;
puts("二つの整数を入力せよ。");
printf("整数1:"); scanf("%d", &n1);
printf("整数2:"); scanf("%d", &n2);
int m = min2(n1, n2); //関数に2変数の値を渡して戻り値(最小値)を得る
printf("小さいほうの値は%dです。\n", m); //最小値を表示
return 0;
}