无法使我的代码正常工作

Cant make my code works correctly

本文关键字:工作 常工作 我的 代码      更新时间:2023-10-16

我正在尝试使我的程序计算所有这些乘法: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采取了步骤。