我的C ++代码中的错误在哪里?

时间:2016-01-07 16:25:03

标签: c++ crash

以下是错误截图:http://prntscr.com/9n6ybt

以下是代码:

#include <iostream>

using namespace std;

int main()
{
    int a, b;
    cin>>a>>b;
    for(int i=a;i<=b;i++)
    {
        if (b%i==0)
        {
            cout << i << " ";
        }
    }   

    return 0;
}

3 个答案:

答案 0 :(得分:3)

for(int i=a;i<=b;i++)
{
    if (b%i==0)
    {
        cout << i << " ";
    }
}

如果i == 0

,则会将除以

您必须检查输入或i的值,例如:

for(int i=a; i<=b; i++)
{
    if (i > 0 && b%i==0)
    {
        cout << i << " ";
    }
} 

如果i == 0,则不会评估b%i==0

答案 1 :(得分:0)

你没有处理我可能为0的情况(除以0)所以b%i是不确定的。你可以通过这种方式解决它:

if (i==0) continue;

答案 2 :(得分:0)

您应该通过“零”处理案例除法。当i = 0的值时,代码失败并产生异常。 你应该这样做:

#include <iostream>
using namespace std;
int main()
{   int a, b;
    cin>>a>>b;
    for(int i=a;i<=b;i++)
    {   if (i == 0)
             continue;
        else if (b%i == 0)
             cout << i << " ";

    }   
    return 0;
}