求解代码错误
double fact( int n ) //这是我的其中一部代码,为什么在这个我的自定义函数里面,for循环里面i的值永远是1,但是a的值一直在变大,然后就在循环里面出不来?这是为啥?{
int i;
double a=1;
while (n>=0&&n<=10){
for (i=1;i++;i<=n){
a=a*i;
i++;
}
}
return a;
} for (i=1;i++;i<=n)
for循环你在好好学一遍,谁家for循环是你这样写的????
for(初始条件;结束条件;条件变化)
{
//循环体
} bin554385863 发表于 2019-10-17 10:03
for (i=1;i++;i
哦,抱歉抱歉 fabvy12 发表于 2019-10-17 10:10
哦,抱歉抱歉
改回来也没用,在自定义函数里面。i根本不动,我调试过了,i一直都是1 for (int i=0;i<=n; i++)
{
} 冷月无痕 发表于 2019-10-17 10:24
for (int i=0;i
还是不行 冷月无痕 发表于 2019-10-17 10:24
for (int i=0;i
可以了,谢谢! fabvy12 发表于 2019-10-17 10:32
还是不行
What number you pass into the function when you testing it? xypmyp 发表于 2019-10-17 10:48
What number you pass into the function when you testing it?
only No.1. #include <iostream>
#include <iomanip>
long double fat(int n)
{
long double result = 1;
if (n < 0)
{
std::cout << "数字非法";
exit(1);
}
if (n == 0)
{
result = 1;
}
if (n > 0)
{
for (size_t i = 1; i < n + 1; i++)
{
result *= i;
}
}
return result;
}
int main(int argc, char const *argv[])
{
int a = 0;
while (a != 50)
{
std::cin >> a;
std::cout << std::fixed<<std::setprecision(0)<< fat(a) << std::endl;
std::cout<<std::endl;
}
return 0;
}
---------------------------------------------------------------------------------------------
Microsoft Windows [版本 10.0.16299.1087]
(c) 2017 Microsoft Corporation。保留所有权利。
E:\Users\86184\Documents\Code>c:\Users\86184\.vscode\extensions\ms-vscode.cpptools-0.26.0\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-neu43l3z.f4x --stdout=Microsoft-MIEngine-Out-0iqgw4w3.i2l --stderr=Microsoft-MIEngine-Error-orbrm5v5.2k3 --pid=Microsoft-MIEngine-Pid-w0g1l25q.djc "--dbgExe=E:\My Program\MinGW\bin\gdb.exe" --interpreter=mi
0
1
1
1
5
120
50
30414093201713378039796484017234741538658648106343392576177963008
E:\Users\86184\Documents\Code> bin554385863 发表于 2019-10-17 12:29
---------------------------------------------------------------------------------------------
Mic ...
50!结果是错误的
30414093201713378039796484017234741538658648106343392576177963008 - 错误
30414093201713378043612608166064768844377641568960512000000000000 - 正确 本帖最后由 bin554385863 于 2019-10-17 18:09 编辑
{:10_266:}{:10_266:}{:10_266:}
……… 本帖最后由 bin554385863 于 2019-10-17 18:09 编辑
jackz007 发表于 2019-10-17 14:28
50!结果是错误的
30414093201713378039796484017234741538658648106343392576177963008 - 错误
30414 ...
我也不知道电脑咋算的-_-||,
我用的vscode,这玩意经常性执行异常,有时候同一个代码执行几次的结果总有一两次都不一样
页:
[1]