C++ 在循环中使用模数会导致分段错误(堆芯倾倒)
我正在写一个程序来求一个数的因子 我的逻辑是:C++ 在循环中使用模数会导致分段错误(堆芯倾倒),c++,C++,我正在写一个程序来求一个数的因子 我的逻辑是:如果((数字%i)==0)那么我们有一个因子。但是,如果您删除了附加的代码,它将编译无误,但会使程序中途崩溃 如果用其他任何东西替换模运算符,程序运行正常。那么我做错了什么 #include <iostream> #include <vector> using namespace std; int main() { int number; vector<int> factors; cou
如果((数字%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;
}
#包括
#包括
使用名称空间std;
int main()
{
整数;
矢量因子;
数量;
for(int i=0;i cout在第一次循环迭代中(当i为0时),您正在除以0
让我从1开始。谢谢。:p这是一个随着时间的推移你会无数次遇到的问题。在某个时候,你会对它有一种洞察力。