带模数的循环给我一个错误

时间:2016-12-11 04:37:55

标签: c++ loops modulus

这是我第一次发帖提问,但是这个循环让我发疯了。我无法弄清楚它有什么问题。它在进入第二个循环时崩溃。它看起来很好,有道理,但它仍然无法正常工作。任何帮助将不胜感激。谢谢!

/**
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;
}

1 个答案:

答案 0 :(得分:2)

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

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