我正在编写一个程序来查找一个数的因数。
我的逻辑是: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] 删除。
我来说两句