这是我第一次发帖提问,但是这个循环让我发疯了。我无法弄清楚它有什么问题。它在进入第二个循环时崩溃。它看起来很好,有道理,但它仍然无法正常工作。任何帮助将不胜感激。谢谢!
/**
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;
}
答案 0 :(得分:2)
如果/
或%
的第二个操作数为零,则行为未定义。在SO中查看此post。在您的程序中,对于内部for循环的第一次迭代,y = 0
因此以下代码段会导致 undefined 行为。
if (x%y == 0) {
cout << y;
}