gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 04:19:36 24 4
gpt4 key购买 nike

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

我的逻辑是: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 开始。

关于c++ - 在循环中使用模数会导致段错误(核心已转储),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55774357/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com