在循环中使用模数会导致分段错误(核心转储)

一个名字

我正在编写一个程序来查找一个数的因数。

我的逻辑是:if ((number % i) == 0)那么我们有一个因素。但是如果你附加的代码,它会编译没有错误,但会导致程序崩溃。

如果用其他任何东西替换模运算符,程序运行良好。那我做错了什么??

#include <iostream>
#include <vector>
using namespace std;

int main()
{
    int number;
    vector<int> factors; 
    cout << "enter a number: ";
    cin >> number;

    for (int i = 0; i < number; i++)
    {
        if ((number % i) == 0)
        {
            factors.push_back(i);
        }
    }

    // display results
    cout << "factors are: ";
    for (int i = 0; i < factors.size(); i++)
    {
        if (i < (factors.size()-1)) cout << factors[i] << ", ";
        if (i == (factors.size()-1)) cout << factors[i];
    }


    return 0;
}
冬眠

您在第一次循环迭代中除以零(当 i 为 0 时)。

让我从 1 开始。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章