#include <stdio.h>
int main()
{
int jieceng(int n);
int n,b;
printf("please input a number:\n");
scanf("%d",&n);
b=jieceng(n);
printf("%d的阶层是%d",n,b);
return 0;
}
int jieceng(int n)
{
int f;
if(n<0)printf("data error!");
else if(n==0||n==1)f=1;//问题就在这,如果我把这句替换成 else if(n==0||n==1)printf(”0和1的阶层都是1“);就错了 为什么
else if(n>0) f=jieceng(n-1)*n;
return f;
}
问题就在这,如果我把这句替换成 else if(n==0||n==1)printf(”0和1的阶层都是1“);就错了 为什么
楼主你要用{}把f=1;跟printf("0和1的阶乘都是1");括起来 像 {f=1;
printf("0和1的阶乘都是1");} 这样子.
试下是不是这个问题
条件语句还有循环语句下的多语句执行都是要这样子的.
#include <stdio.h>
int main() {
int jiecheng(int n);
int n,b;
printf("please input a number : ");
scanf("%d",&n);
b = jiecheng(n);
printf("%d! = %d\n",n,b);
return 0;
}
int jiecheng(int n) {
if(n < 0) printf("data error!");
else if(n==0||n==1) return 1;
return jiecheng(n-1)*n;
}