| skyclad1975 |
main 에서 fact 함수로 인자를 넘길 때 double 값으로 받도록 되어 있는데 int 형인 n을 넣고 있네요
일단 n을 double로 바꾸시고 컴파일해보세요. printf 내부에서 %2lf로 바꿔주시는 거 잊지 마시고,
그리고 fact 함수가 리턴하는 값은 double 형인데 printf에서는 ld형으로 받고 있네요 이부분도 고쳐주시고...
#include <stdio.h>
double fact(double);
int main(void)
{
double n;
for(n=1;n<101;n++)
printf("%2lf = %.lf\n",n,fact(n));
return 0;
}
double fact(double i)
{
if (i==0) //종료 조건
return 1L;
else //재귀 호출
return (i*fact(i-1));
}
제대로 실행되도록 바꾼 코드입니다 |
2014/12/07 |
|