输入负数是 结果显示有问题
求n!# include<stdio.h>
int main()
{
int fac (int n);
int n,m;
printf("input number:\n");
scanf("%d",&n);
m=fac(n);
printf(" %d!=%d\n",n,m);
return 0;
}
int fac (int n)
{
int s;
if(n<0)
printf(" n<0, data error!!!\n");
else if(n==0||n==1)
s=1;
else
s=n*fac(n-1);
return s;
} 如果不是为了练习递归算法
这个题目直接写远比递归简单明了 #include<stdio.h>
#include <stdlib.h>
int main() {
int fac (int n);
int n,m;
printf("input number:\n");
scanf("%d",&n);
m=fac(n);
printf(" %d!=%d\n",n,m);
return 0;
}
int fac (int n) {
int s;
if(n<0){
printf(" n<0, data error!!!\n");
exit(0);
}
else if(n==0||n==1)
s=1;
else
s=n*fac(n-1);
return s;
}
页:
[1]