0

此代码在 Topcoder 上给出了编译错误。在 code::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;
}
4

2 回答 2

2

看来您的方法 digits() 应该返回一个值,一个向量 < int >。

也许添加一个“return v;” 在末尾?

于 2012-10-23T23:59:45.773 回答
0

您需要返回一个向量。使用您的代码,编译器会尝试返回导致未定义行为的内容。因此,添加“return v”应该可以解决您的问题。

于 2012-10-24T00:06:13.377 回答