我的代码哪里错了#include<stdio.h> int jiecheng1(int x) { int m=1; for(x;x>0;x--) { m*=x; } return m; } int main() { int m,n; printf("please intput a numble:"); scanf("%d",&m); if(m>0) printf("%d的阶乘为",m,jiecheng1(m)); if(m=0) printf("%d的阶乘为",m,1); return 0; }
时间: 2024-04-14 14:27:11 浏览: 203
你的代码有一个语法错误。在条件语句中,你应该使用双等号(==)进行比较,而不是单等号(=)。单等号用于赋值操作。请修改以下代码:
```c
#include <stdio.h>
int jiecheng1(int x)
{
int m = 1;
for (x; x > 0; x--)
{
m *= x;
}
return m;
}
int main()
{
int m, n;
printf("please input a number: ");
scanf("%d", &m);
if (m > 0)
printf("%d的阶乘为%d\n", m, jiecheng1(m));
else if (m == 0)
printf("%d的阶乘为1\n", m);
return 0;
}
```
这样修改后,代码应该就能正确运行了。
相关问题
#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)); }哪错了?
该程序中有一个拼写错误,将 `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);
}
```
n的阶乘JieCheng(n)== 1*2*3*... *(n-1)* n == JieCheng(n- 1)*n用c语言
以下是用C语言实现计算n的阶乘的代码:
```c
#include <stdio.h>
int JieCheng(int n) {
if (n == 0) {
return 1;
} else {
return JieCheng(n-1) * n;
}
}
int main() {
int n;
printf("请输入一个正整数: ");
scanf("%d", &n);
printf("%d的阶乘是%d\n", n, JieCheng(n));
return 0;
}
```
代码中使用了递归的方式来计算n的阶乘。当n等于0时,递归结束,返回1;否则,递归调用JieCheng函数计算n-1的阶乘,并乘以n得到n的阶乘。最后,在main函数中输入一个正整数n,并输出n的阶乘。
阅读全文