语法 - c ++ - 无法使我的代码正常工作

时间:2016-11-24 13:25:23

标签: c++ syntax

我正试图让我的程序计算所有这些乘法: 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; 
}

3 个答案:

答案 0 :(得分:2)

您没有正确看到您的循环。尝试首先在表中编写要计算的数字,并使用它来构建循环。

对于第一个循环变量的一个值 - 称之为 i ,您希望它乘以1,然后是两个,然后是三个(等), j 的值。

无论 j 的值是什么,您的循环应如下所示:

for(int i=999; i>=100; --i)
     for(int j=999; j>=i; j--)
           ; //computation goes here

在这里您清楚地看到,对于 i 的一个值,当 i = 999 时,您将使用一个 j 值,然后是两个值 j ,然后是......

如果您是编码新手,我建议您从开始循环,当您对前者感到满意时切换到

答案 1 :(得分:0)

你可以像这样使用两个for循环:

#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;
        }
    }
}

答案 2 :(得分:0)

我试图纠正你的代码,但内部的while循环确实应该被删除。删除后,我无法判断我是在重写还是更正它。无论如何,它是删除,根本不需要它。

这是正确的代码:

#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会迈出一步。