3

私はC++で小さなプログラムを書いています。MS VS 2013 Compiler を使用してコンパイルしようとすると、「C2601: 'main' : local function definitions are illegall」というエラーが表示されます。どういう意味ですか?私のコードは次のとおりです。

#include <iostream>
int n;
int pomocniczaLiczba;
using namespace std;
int ciong(int n){
    switch (n)
    {
    case 1:
        return 1;
        break;
    case 2:
        return 2;
        break;
    default:
        pomocniczaLiczba = ciong(n - 2) + ciong(n - 1) * ciong(n - 1);
        return pomocniczaLiczba;
        break;
    }
int main()
{
    cin >> n;
    cout >> ciong(n);
    return 0;
}
}
4

2 に答える 2

16

ブラケットが壊れています。最終的な結果は、main内で関数を定義しようとしているということですciong。また、C++ はネストされた関数定義をサポートしていません。したがって、コンパイラエラー。

コードは次のようになります。

#include "stdafx.h"
#include <iostream>
using namespace std;


int ciong(int n)
{
switch (n)
{
case 1:
    return 1;
    break;
case 2:
    return 2;
    break;
default:
    int pomocniczaLiczba = ciong(n - 2) + ciong(n - 1) * ciong(n - 1);
    return pomocniczaLiczba;
    break;
}
} // <----- Oops, this was missing in your code

int main()
{
int n;
cin >> n;
cout << ciong(n) << endl;
return 0;
}

そして、他のバグがあります。たとえば、あなたはcout << ciong(n).

于 2013-10-18T22:36:53.990 に答える