【问题标题】:Loop with modulus gives me an error带模数的循环给了我一个错误
【发布时间】:2016-12-11 04:37:55
【问题描述】:

这是我第一次发布问题,但这个循环让我发疯了。我无法弄清楚它有什么问题。它在进入第二个循环的那一刻崩溃。它看起来很好并且很有意义,但它仍然不起作用。任何帮助将不胜感激。谢谢!

/**
Author: Yunus Kulyyev
Date: 10-Dec-2016
Description:
**/

#include <iostream>

using namespace std;

int main()
{
    for (int x=1; x < 10; x++)
    {
        cout << x <<": ";
        for (int y = 0; y <= x; y++)
        {
            if (x%y == 0)
            {
            cout << y;
            }
        }
        cout << endl;
    }

    return 0;
}

【问题讨论】:

  • 在第一次迭代中,当y==0 时,您期望x % y 的值是多少?

标签: c++ loops modulus


【解决方案1】:

如果/% 的第二个操作数为零,则行为未定义。在 SO 中看到这个post。在您的程序中,对于内部 for 循环的第一次迭代,y = 0 因此以下代码 sn-p 会导致 undefined 行为。

if (x%y == 0) {
    cout << y;
}

【讨论】:

  • @YunusKulyyev 最好的感谢方式是接受答案 :)
  • @YunusKulyyev 如果对您有帮助,您可以接受我的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-25
  • 2021-09-11
  • 1970-01-01
  • 1970-01-01
  • 2018-11-29
  • 1970-01-01
  • 2020-01-09
相关资源
最近更新 更多