问题描述
- 递归求n! 哪个地方错了
-
#include "StdAfx.h"
#include
int f(int ){
int n;printf("please input number n:n");
scanf("%d",&n);
if (n==1||n==0)
return 1;
else
return n*f(n-1);
}
解决方案
#include "StdAfx.h"
#include <stdio.h>
int f(int n)
{
if (n==1||n==0)
return 1;
else
return n*f(n-1);
}
int main()
{
int n;
printf("please input number n:n");
scanf("%d",&n);
int r = f(n);
printf("%d", r);
return 0;
}
解决方案二:
把printf拿出来,单独写,别放到递归里。
然后f函数改成如下
int f(int n)
{
scanf("%d",&n);
if (n==1||n==0)
return 1;
else
return n*f(n-1);
}
时间: 2024-11-16 11:41:56