有人能告知一下,为什么我输入很小的数字 结果还是得很大的负数吗,int应该也没有超范围吧,输入0.1.2也一样 ,结果都是很大的负数。
你是想求阶乘吧:这么写就行了,哪里不明白可以再问我
#include<stdio.h>
int jc(int n){
int y;
if(n==1){
return 1;
}
else
y=jc(n-1)*n;
return y;
}
int main()
{
int i,x,n;
scanf("%d",&n);
x=jc(n);
printf("%d!=%d",n,x);
return 0;
}
x改成x(n)
你没对x赋值啊
x是函数,需要用()调用
printf("%d!=%d",n,x);
改成
printf("%d!=%d",n,x(n));
你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)
#include<stdio.h>
int main()
{
int x(int n);
int n;
printf("请输入一个整数:");
scanf("%d",&n);
printf("%d!=%d",n,x(n));
return 0;
}
int x(int n){
int y;
if(n<0)
printf("不能是负数");
else if(n==0 || n==1)
y = 1;
else
y=x(n-1)*n;
return y;
}