无法使我的代码正常工作
Cant make my code works correctly
我正在尝试使我的程序计算所有这些乘法:999*999,999*998,998*998,998*997,..........直到100*100。
现在,它仅计算999*999 998*998 997*997 ... 100*100。我不明白为什么?您可以看我的代码吗?谢谢br
#include <iostream>
#include <vector>
#include <cmath>
int main () {
int i = 999;
int j = 999;
while (j >= 100) {
i == j ;
while (i >= j-1) {
std::cout << i*j << std::endl;
i -= j;
}
j = j-1;
}
return 0;
}
您没有正确看到循环。尝试首先在表中写入要计算的数字,然后使用它来构建循环。
对于您的第一个循环变量的一个值 - 称其为 i ,您希望它乘以一个,然后将其乘以两个,然后将其乘以 j 的值。
不管 j 的这些值实际上是什么,您的循环应该看起来像:
for(int i=999; i>=100; --i)
for(int j=999; j>=i; j--)
; //computation goes here
在这里,您清楚地看到,对于 i 的一个值,您将使用一个值 j 时, i = 999 ,则使用两个值 j ,然后是...
如果您是新手的编码,我建议您从开始循环,然后切换到而当您对以前的版本感到满意时。
您可以将两个用于这样的循环:
#include <iostream>
int main()
{
for (int i = 999; i > 99; --i)
{
for (int j = 0; j < 2; ++j)
{
std::cout << i * (i - j) << std::endl;
}
}
}
我试图纠正您的代码,但是内部循环确实应该删除。删除它后,我无法分辨我是在重写还是对其进行纠正。无论如何,它是删除的,根本不需要。
这是正确的代码:
#include <iostream>
#include <vector>
#include <cmath>
int main () {
int i = 999;
int j = 999;
while (j >= 100) {
std::cout << i << " " << j << std::endl;
if (i==j)
--j;
else
--i;
}
return 0;
}
每当i==j
,我们--j
时,逻辑很简单。每当i!=j
时,我们--i
。我们从同一位置的I和J开始,在循环期间,当我落后J的一步时,我迈出了一步。当i和j处于同一位置时,J采取了步骤。
相关文章:
- QSqlquery prepare()和bindvalue()不工作
- 导入库可以跨dll版本工作吗
- 以螺旋方式打印矩阵的程序.(工作不好)
- 对象指针在c++中是如何工作的
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- C++为线程工作动态地分割例程
- 为什么我的 std::ref 无法按预期工作?
- 布尔比较运算符是如何在C++中工作的
- SampleConsensusPrerejective(ext.RANSAC)是如何真正工作的
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 为什么std::condition_variable notify_all的工作速度比notify_one快(对于随机请
- <<操作员在下面的行中工作
- 有人能解释一下为什么下界是这样工作的吗C++的
- ExtractIconEx:可以工作,但偶尔会崩溃
- C++中的memset函数工作不正常
- 为什么STD ::计数将常数传递给Lambda,而不是在弦上工作时而不是字符
- sdl软件渲染器不工作,工作在硬件加速的一个
- C++程序已停止工作-求解常微分方程