此代码在Topcoder上给出了编译错误。在代码:: blocks上,它编译0错误和0警告,向量打印,但它以非零值退出,导致窗口显示“InterestingDigits.exe已停止工作”。对此有任何帮助..?
#include<iostream>
#include<vector>
using namespace std;
class InterestingDigits
{
public:
vector <int> digits(int base)
{
vector<int> v;
for(int i=2; i<base; i++)
if(base%i==1)
v.push_back(i);
for(int i=0; i<v.size(); ++i)
cout<<v[i]<<" ";
cout<<endl;
}
};
int main()
{
int base;
cin>>base;
InterestingDigits id;
id.digits(base);
return 0;
}
答案 0 :(得分:2)
似乎你的方法digits()应该返回一个值,一个向量&lt; int&gt;。
也许添加“return v;”最后?
答案 1 :(得分:0)
您需要返回一个向量。使用您的代码,编译器会尝试返回导致未定义行为的内容。因此,添加“return v”可以解决您的问题。