ページ 11

関数について(初心者)

Posted: 2007年7月03日(火) 23:40
by まんま
自分で定義した関数を2重に利用することは出来ますか?
たとえば次のようなことは可能でしょうか?

void sum_a(void);
void sum_b(void);

main()
{
sum_b();
}

void sum_a(void)
{
//sum_aの処理//
}

void sum_b(void)
{
sum_a();
//引き続きsum_bの処理//
}



よろしくお願いします。

Re:関数について(初心者)

Posted: 2007年7月03日(火) 23:42
by box
全く問題ありません。

Re:関数について(初心者)

Posted: 2007年7月04日(水) 00:00
by まんま
ありがとうございます!!

Re:関数について(初心者)

Posted: 2007年7月04日(水) 04:10
by 管理人
自分の関数の中で自分の関数を呼ぶ・・なんて事も出来ます。
これは再帰関数として用いられます。
しかし使用方法が若干難しいので、クイックソートや組み合わせの計算なんかの勉強をするまで使わないかもしれませんが、こういうことも出来るって事でしっておくと、突然再帰関数を見たときのハードルが低くなるかもしれません。

出来るかな?と思ったら色々自分でコンパイルしてみるといいですよ。
とりあえず、エラーが出てなかったら大丈夫!って感じで怖いもの知らずでドンドン書いていってみてください!

Re:関数について(初心者)

Posted: 2007年7月04日(水) 04:23
by 組木紙織
再帰関数はこんなのですね。
フィナボッチ数列を返します。
#include<stdio.h>

int f(int num)
{
	if(num <=2) return 1;
	return f(num-1)+ f(num-2);
}


int main(void)
{
 	int out,i;
	for(i=1;i<10;i++){
	 	out = f(i);
		printf("%d\n",out);
	}
	return 0;
}