double
すべてをint
に変更すると、なぜうまくいくのかわかりません。
printfステートメントに何か問題がありますか?
あなたが使う%f
か%lf
、のためdouble
に、そうですか?
/*
double power(double a, int b) that calculates the power ab. You are allowed to use the
multiplication operator *.
*/
#include <stdio.h>
#include <conio.h>
double power(double a,int b)
{
double buffer;
if(b > 1)
{
buffer = a * power(a,b-1);
return buffer;
}
else
return a;
}
int main(void)
{
double a;
int b;
int buffer;
scanf("%f",&a);
scanf("%d",&b);
buffer = power(a,b);
printf("%f",buffer);
getch();
}