求阶乘,,,即使是输入1结果也是错的
#include<stdio.h>long hanshu(int n);
int main()
{
int n;
int result;
scanf_s("%d", &n);
result = hanshu(n);
printf("%d", result);
}
int hanshu(int n)
{
int linshijieguo;
if (n == 0 || n == 1)
{
linshijieguo = 1;
}
else if (n < 0)
{ printf("n<0,input error!\n");
}
else
{
linshijieguo = hanshu(n - 1)*n;
}
}
用这段代码没错:
#include<stdio.h>
int main()
{
int n;
int result;
scanf_s("%d", &n);
result = hanshu(n);
printf("%d", result);
return 0;
}
int hanshu(int n)
{
int linshijieguo;
if (n == 0 || n == 1)
{
linshijieguo = 1;
}
else if (n < 0)
{ printf("n<0,input error!\n");
}
else
{
linshijieguo = hanshu(n - 1)*n;
}
}
zltzlt 发表于 2019-12-14 18:24
用这段代码没错:
可是我在vs2013上输入1结果为一串负数,得不到正确答案
WFR 发表于 2019-12-14 18:29
可是我在vs2013上输入1结果为一串负数,得不到正确答案
可能是编译器问题,我用的是 Dev-C++。 WFR 发表于 2019-12-14 18:29
可是我在vs2013上输入1结果为一串负数,得不到正确答案
大哥????
zltzlt 发表于 2019-12-14 18:30
可能是编译器问题,我用的是 Dev-C++。
怎么解决???
WFR 发表于 2019-12-14 18:34
怎么解决???
我不会搞这个,怎么才能得到正确的结果?? WFR 发表于 2019-12-14 18:35
我不会搞这个,怎么才能得到正确的结果??
下一个 Dev-C++ 看看。
下载地址:https://www.cr173.com/soft/21025.html zltzlt 发表于 2019-12-14 18:36
下一个 Dev-C++ 看看。
下载地址:https://www.cr173.com/soft/21025.html
大哥windows 10连vc++6.0都不兼容???你确定这个可以兼容》????
WFR 发表于 2019-12-14 18:38
大哥windows 10连vc++6.0都不兼容???你确定这个可以兼容》????
可以兼容。 zltzlt 发表于 2019-12-14 18:40
可以兼容。
但是我这个vs2013怎么办才能得到正确结果??? #include<stdio.h>
int hanshu(int n)
{
if (n == 0 || n == 1)
{
return 1;
}
else if (n < 0)
{
printf("n<0,input error!\n");
return n;
}
else
{
return hanshu(n - 1)*n;
}
}
int main()
{
int n;
int result;
scanf_s("%d", &n);
result = hanshu(n);
printf("%d", result);
}
为啥你的函数返回值都没有,上面代码vs2017编译通过。 Charles未晞 发表于 2019-12-14 18:46
为啥你的函数返回值都没有,上面代码vs2017编译通过。
谢谢大哥
终于解决了 WFR 发表于 2019-12-14 19:06
谢谢大哥
终于解决了
OK,可以的话麻烦采纳一下设置为最佳。 Charles未晞 发表于 2019-12-14 19:57
OK,可以的话麻烦采纳一下设置为最佳。
可是为什么输入20,得到的却是一个负数??????疑问????????????????????? WFR 发表于 2019-12-15 20:30
可是为什么输入20,得到的却是一个负数??????疑问?????????????????????
这种东西自己搜一下int范围就行了,越界了。 Charles未晞 发表于 2019-12-15 20:40
这种东西自己搜一下int范围就行了,越界了。
怎么解决这个问?????
Charles未晞 发表于 2019-12-15 20:40
这种东西自己搜一下int范围就行了,越界了。
怎么解决这个问题????、、
WFR 发表于 2019-12-21 18:16
怎么解决这个问题????、、
用long long 如果还不够就用unsigned long long WFR 发表于 2019-12-14 18:38
大哥windows 10连vc++6.0都不兼容???你确定这个可以兼容》????
不会吧,我的win10运行vc6.0没问题啊
页:
[1]
2