C言語初心者です。
Posted: 2010年6月10日(木) 21:43
C言語・リカーシブコールを使っての関数を作りたいですが・・・
初めて質問させていただきます。
私は今、C言語の勉強中で、
リカーシブコール(再帰び出し)を勉強中です。
以下に書かせていただいた問題を解いているのですが
うまくいきません。
このpower関数の定義部分を再帰呼び出しを使って書き直したいです。
大変申し訳ないのですが、初心者のためここがわからない、という
的確なことが言えません・・・
自分で作ってみたソースでコンパイルしてみたところ、
最後の%d乗のところがうまく出せません。
うまくコンパイルできるソースがお分かりの方いらっしゃいましたら
ぜひ教えていただきたいです。
恐れ入りますが、よろしくお願い致します。
問題:
xのy乗を返す関数int power(int x,int y)を作成し、
次のようにキーボードから入力して計算を行うコードを入力してください。
***************************************************
1番目の整数を入力してください。(1~5)
2←(キーボードから入力)
2番目の整数を入力してください。(1~5)
3←(キーボードから入力)
2の3乗は8です。
***************************************************
(再帰呼び出しをせずに作ったソースです↓)
#include <stdio.h>
/*power関数の宣言*/
int power(int x, int y);
int main(void)
{
int num1,num2,ans;
printf("1番目の整数を入力してください。\n");
scanf("%d", &num1);
printf("2番目の整数を入力してください。\n");
scanf("%d", &num2);
ans = power(num1,num2);
printf("%dの%dは%dです。\n", num1,num2,ans);
return(0);
}
/*power関数の定義*/
int power(int x, int y)
{
int a;
int i;
a = x;
for(i=1;i<y;i++){
a = a * x;
}
return a;
}
よろしくお願い致します。
初めて質問させていただきます。
私は今、C言語の勉強中で、
リカーシブコール(再帰び出し)を勉強中です。
以下に書かせていただいた問題を解いているのですが
うまくいきません。
このpower関数の定義部分を再帰呼び出しを使って書き直したいです。
大変申し訳ないのですが、初心者のためここがわからない、という
的確なことが言えません・・・
自分で作ってみたソースでコンパイルしてみたところ、
最後の%d乗のところがうまく出せません。
うまくコンパイルできるソースがお分かりの方いらっしゃいましたら
ぜひ教えていただきたいです。
恐れ入りますが、よろしくお願い致します。
問題:
xのy乗を返す関数int power(int x,int y)を作成し、
次のようにキーボードから入力して計算を行うコードを入力してください。
***************************************************
1番目の整数を入力してください。(1~5)
2←(キーボードから入力)
2番目の整数を入力してください。(1~5)
3←(キーボードから入力)
2の3乗は8です。
***************************************************
(再帰呼び出しをせずに作ったソースです↓)
#include <stdio.h>
/*power関数の宣言*/
int power(int x, int y);
int main(void)
{
int num1,num2,ans;
printf("1番目の整数を入力してください。\n");
scanf("%d", &num1);
printf("2番目の整数を入力してください。\n");
scanf("%d", &num2);
ans = power(num1,num2);
printf("%dの%dは%dです。\n", num1,num2,ans);
return(0);
}
/*power関数の定義*/
int power(int x, int y)
{
int a;
int i;
a = x;
for(i=1;i<y;i++){
a = a * x;
}
return a;
}
よろしくお願い致します。