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>という値を返す必要があるようです。

たぶん「returnv;」を追加します 最後に?

于 2012-10-23T23:59:45.773 に答える
0

ベクトルを返す必要があります。あなたのコードでは、コンパイラは未定義の動作を引き起こしたものを返そうとします。したがって、「return v」を追加すると問題が解決するはずです。

于 2012-10-24T00:06:13.377 に答える