int plus(int a, int b) { int c ; c = a + b ; return c ; } この関数ではさっきのf(x)がplus(a,b)にあたる さっきと違って変数が二つあるが、まあわかるだろう? ここではaとbを足すという操作を行っている このとき c = a + b という式で計算をしてcの値を求める ここからが問題だ 今の計算を例えると、テスト用紙にf(x)=a+b=( ? )という問題があったとする(aとbには数字が入っていた) お前はこの計算を面倒臭がって計算機でやったとしよう 計算機で答えが出たら、その答えを答案用紙の( ? )に書き入れないといけないよな? この答えを書き入れる操作が「値を返す」という操作だ そしてここで書き入れた値を「戻り値」と呼ぶ 何かわからないことはあるか?
戻り値が答えを書き入れる作業みたいなものということは、 cの値は次にcを呼び出す時にはa+bの値になっているって事ですか? ただcの値をa+bにするだけなら、戻り値がある理由が分からないのですが… あと、もしaとbに数字を入れたかったらint plus(int a = 8 , int b = 5); みたいな感じでいいのですか?
cの値はreturnの操作が終わったらなくなると考えていい だから関数は違う値を入れれば何回でも使いまわせる 関数というのは、cの値をa+bにするというよりも、plus( a , b )の値=a+bにするものだ cというのはプログラムを見やすくするために、一旦一つの文字にまとめただけ だから、こんな風にまとめることだってできる int plus(int a, int b) { return a + b ; }
うーん… 前のビンゴミさんの例だと何となくわかるんだけど… 今日やったのが #include <stdio.h> int saishou(int a,int b,int c){ int shou; shou = a; if(shou > b) shou = b; if(shou > c) shou = c; return shou; }
int main(){ int u, v, w, kekka; printf("Input u, v, and w -> "); scanf("%d %d %d",&u,&v,&w); kekka = saishou(w, v, u); printf("%d\n",kekka); return 0; } っていうので、なんか何が何やらさっぱり…