为什么它显示错误,即使它看起来很合适? 这是一个C++代码,用于查找给定数的因子。 但问题是它不能产生期望的输出。问题在于处理部分。它只显示因素:并继续处理,并给出一个错误,说明-Untitled.exe已停止工作。请修复错误并提供详细解释。

为什么它显示错误,即使它看起来很合适? 这是一个C++代码,用于查找给定数的因子。 但问题是它不能产生期望的输出。问题在于处理部分。它只显示因素:并继续处理,并给出一个错误,说明-Untitled.exe已停止工作。请修复错误并提供详细解释。,c++,C++,显然,问题来自于forint i=1;你的意见是什么?arrA是否有足够的元素?嗯,程序似乎进入了无限循环,而不是停止使用输入4。函数定义中缺少返回类型的因子。由于此函数不返回任何内容,我想您可以将其更改为void。 #include <iostream> using namespace std; int factors(int); int main() { int n; cout<<"Enter a number: "; cin>>n;

显然,问题来自于forint i=1;你的意见是什么?arrA是否有足够的元素?嗯,程序似乎进入了无限循环,而不是停止使用输入4。函数定义中缺少返回类型的因子。由于此函数不返回任何内容,我想您可以将其更改为void。
#include <iostream>
using namespace std;
int factors(int);

int main() {
   int n;
   cout<<"Enter a number: ";
   cin>>n;
   factors(n);
   return 0;
}

factors(int n){
    //To find out factors
    int i, arrA[5];
    arrA[0]=1;
    cout<<"Factors: ";
    for(int i=1;i<=n;i++){
        for(int j=2;j<=n;j++){
            if(n%j==0){
                arrA[i]=j;
            }
            else if(n%j!=0){
                i--;
            }
        }
    }
    for(int z=0;z < (sizeof(arrA)/sizeof(arrA[0]));z++){
        cout<<arrA[z]<<" ";
    }
}
#include <iostream>
#include <list>
using namespace std;
void factors(int n, std::list<int> & factors);

int main() {
   int n;
   cout<<"Enter a number: ";
   cin>>n;
   std::list<int> fact;

   factors(n, fact);

   cout<<"Factors: ";
   std::list<int>::iterator it=fact.begin();
   for(;it!=fact.end();it++)
   {
       std::cout << *it<<", ";
   }
   return 0;
}

void factors(int n, std::list<int> & factors)
{
    for(int j=2;j<=n;j++){
            if(n%j==0){
                factors.push_back(j);
            }
    }
}