#include<stdio.h> long fact(int n); int mian(void){ int n; long resoult; printf("input n:"); scanf("%d",&n); resoult=fact(n); if(resoult==-1) printf("error"); else printf("nde jiecheng :%d",n); return 0; } long fact(int n) { if( n < 0 ) return -1; else if(n==0||n==1) return 1; else return(n*fact(n-1)); }哪错了?
时间: 2024-01-24 16:01:46 浏览: 292
该程序中有一个拼写错误,将 `mian` 改为 `main` 即可。另外,程序最后输出的应该是 `n` 的阶乘结果 `resoult`,而不是 `n` 本身。修改后的程序如下:
```
#include<stdio.h>
long fact(int n);
int main(void){
int n;
long result;
printf("input n:");
scanf("%d",&n);
result = fact(n);
if(result == -1)
printf("error");
else
printf("%d的阶乘为:%ld", n, result);
return 0;
}
long fact(int n) {
if(n < 0)
return -1;
else if(n == 0 || n == 1)
return 1;
else
return n * fact(n - 1);
}
```
阅读全文