第5講 関数(1)
第4話 引数について
前話で
#include<stdio.h> //prinf()を使えるようにするためにインクルード
void f(int k); //社員f()を採用
void g(int k); //社員g()を採用
int main() {
f(0); //社員f()に仕事を命じている
}
void f(int k){
k++;
printf("こんにちは!\n");
g(k); //社員g()に仕事をお願いしている
}
void g(int k){
printf("今日は良い天気ですね。\n");
if(k<5)f(k); //社員f()に仕事をお願いしている
}
導入したf(0); g(k); f(k); の括弧の中の数字を引数といいます。
引数は『いんすう』と読んでしまう人が多いと思いますが、『ひきすう』と読みます。
今回の導入した引数は整数ですので、
ピンクで修飾してあります。
引数のタイプが整数型であることを示しています。
もっとわかりやすい例にするために、
コードを次のように変更して下さい。
#include<stdio.h> //prinf()を使えるようにするためにインクルード
void f(int k); //社員f()を採用
int main() {
f(10); //社員f()に仕事を命じている
}
void f(int k){
int w=0,i;
for(i=1;i<=k;i++)w+=i; //for文の命令文が1文しかない場合はこの書き方が可
printf("1から%dまでの和=%d\n",k,w);
}
社員f()の仕事は、1から引数までの和を求める仕事です。
今回は10ですから、1から10までの和を算出する仕事を求められたわけです。
引数は複数指定できます。
例えば、コードを次のように変更すると、
#include<stdio.h> //prinf()を使えるようにするためにインクルード
void f(int s ,int m); //社員f()を採用
int main() {
f(3,10); //社員f()に仕事を命じている
}
void f(int s ,int m){
int w=0,i;
for(i=s;i<=m;i++)w+=i;
printf("%dから%dまでの和=%d\n",s,m,w);
}
実行結果
3から10までの和=52
となります。第1話で仕事の内容を伝えることがあると書きました。
今回はf(3,10)の3と10によって初項と末項を与えられて、
3から10の和を求めました。
仕事の内容が引数によって規定されたのです。
では皆さん、引数を利用して、
@引数(は1つ)を2倍にして表示するプログラム
A引数を初項・交差・末項にして等差数列の和を計算。ただし、初項3・交差2・末項11とする。
B引数を初項・交差・末項にして等差数列の和を計算。ただし、引数の各値はmain()においてキーボード上から取得。
C引数をa,b,cとしてa*b+cを表示させるプログラム。ただし、a,b,cはmain()おいてキーボードから取得。