我无法指定为什么输出不正确?
I can't specify why the output is not right?
我想要一个程序来计算下列数学中第一个给出正值的自然数。函数。F (x) = 0.001 - (1/x)
#include<iostream>
using namespace std;
long double abso (long double x)
{
return (x > 0 ? x : -x);
};
int main()
{
long double y=0,x=0;
for (register long double n=0; y<=0 ;)
{
n++;
y = 0.001 - (1/x);
x=n;
};
cout<< "The number is "<< x <<'n';
system ("pause");
}
它应该给1001,但它给了我1002。
谁能告诉我代码中的错误?循环for (register long double n=0; y<=0 ;)
将中断一次y > 0
。
最后一次赋值是:
n++;
y = 0.001 - (1/x);
x=n;
所以验证方程的x
等于n-1
,而不是n,因此输出不正确。
你可以用一个while
循环来编写更简单的东西,而不需要额外的n
(除了register
修饰符,但如果你真的需要它——我怀疑它——把它放在x上):
while ( y<=0 )
{
y = 0.001 - (1/++x);
}
cout<< "The number is "<< x <<'n';
先赋值x再除以1。1不能除以0。1除以0实际上是一个错误。
for (register long double n=0; y<=0 ;)
{
n++;
x=n;
y = 0.001 - (1/x);
};
我希望这对你有帮助
相关文章:
- Windows 10命令提示符的输出不正确
- C++ - 为什么 unicode 输出不正确?
- 我的叉子输出不正确
- C++使用 CEIL 和长度输出不正确的值
- 使用 iconv 进行 UTF8 转换的输出不正确
- C strftime()输出不正确
- 当行数和列不匹配时,输出不正确
- C++ 嵌套循环输出不正确
- 矩阵和矢量乘法,输出不正确的产品
- 我对这个问题有问题,我的输出不正确
- 上一个较大的数字代码中的输出不正确
- 二进制搜索树的输出不正确
- 拆解输出不正确(BeaEngine)
- 最大输出不正确
- 基本合并排序中的输出不正确
- 更改声明顺序时输出不正确
- Base64 转换器的输出不正确
- 使用 find_first_of() 和 substr() 分隔字符串,但我得到的输出不正确
- 对字符串进行索引时输出不正确
- .wav C++数据输出不正确