出现整数错误

时间:2017-09-28 16:27:02

标签: c++ integer initialization

最近我自己开始研究欧拉计划的挑战。我遇到问题七,在我的代码中遇到了一个奇怪的错误。在我的代码中,我有一个名为count的变量,用于计算找到的素数的数量,但是当我尝试打印它时,它会打印为null。

#include <iostream>

int main()
{
  bool isPrime = true;

  for(int i = 1; i <= 10000000000;)
  {
      int count;
      for(int factor = 1; factor = i; factor++)
      {

          if(i%factor == 0)
          {
              isPrime = false;
              break;
          }
      }

      if(isPrime) {count = count + 1;}

      std::cout << count + "-";
      if(count == 10001)
      {
          std::cout << count;
          std::cout << i + "Final \n";
          break;
      }
      i++;
  }


}

当行std::cout << count + "-";运行时,输出为:

--------------------------------------------------------------------------------------------------------

等。我认为它与counts的初始化有关,但我不确定。谢谢你的帮助!

2 个答案:

答案 0 :(得分:3)

除上述错误外,还在代码行中

for(int factor = 1; factor = i; factor++)

您指定的因子是I值,而不是像这样检查相等:

factor == i;

我认为这就是你要做的事。

答案 1 :(得分:1)

使用

std::cout << count << "-";

通过使用“+”运算符,您将字符串与任何内容连接起来,从而只输出“ - ”字符串。

或者你可以做

std::cout << std::to_string(count) + "-";