-4

これは、14 個のスロットを持つ配列用に作成したコードです。6 番目と 13 番目のスロットを除いて、それぞれに 4 個のスロットが必要です。ただし、0 に戻されます。ただし、コンパイルされません。ここで私が何を間違えたか知っている人はいますか?

using namespace std;
#include <iostream>

const int MAX = 14;

int main ()
{
    void printArray ();

    system ("pause");
    return 0;
}

void startArray (int beadArray[MAX])
{
    for(int i=0; i<MAX; i++)
    {
        beadArray[i]=4;
    }
    beadArray[6]=0;
    beadArray[13]=0;
}

//**********************************************//

void printArray ()
{
    startArray (int beadArray[MAX]);
    for(int i=0; i<MAX; i++)
    {
        cout<<i;
    }
}
4

2 に答える 2

7
startArray (int beadArray[MAX]);

beadArrayワンステップで宣言して使用しようとしています。使用する前に宣言する必要があります。

int beadArray[MAX];
startArray (beadArray);

他にも多くの問題があります。

  • using namespace std;まだd<iostream>されていないため、効果はありません。#includeグローバルも使用しないでくださいusing namespace std;

  • system ("PAUSE");交換する必要があります。私は個人的に使用します:

    cin.sync(); cin.get();

  • の場合、コンパイラは関数について知りませんmain()。の前main()に、プロトタイプを配置する必要があります。

    void printArray(); void startArray (int []);

  • あなたがmain()言うvoid printArray();。関数を呼び出すときは、関数名と引数のみを使用します。

    printArray();

  • では、代わりにprintArray()出力しています。間隔もありません。ibeadArray [i]

  • グローバル定数を使用するのは悪いことです。

私が持っていた修正コードは次のようになります。

#include <iostream>

const int MAX = 14;

void startArray (int (&beadArray)[MAX]);
void printArray();

int main ()
{
    printArray ();

    std::cout << "\n\nPress enter to continue...";
    std::cin.sync();
    std::cin.get();
    return 0;
}


void startArray (int (&beadArray)[MAX])
{
    for(int i=0; i<MAX; ++i)
        beadArray[i]=4;

    beadArray[6]=0;
    beadArray[13]=0;
}

void printArray ()
{
    int beadArray[MAX];
    startArray (beadArray);

    for(int i=0; i<MAX; i++)
        std::cout << beadArray[i] << ' ';
}

私は定数を残しましたが、それを置き換えるためにできることはたくさんあります。

于 2012-05-05T20:40:16.310 に答える
3

いくつかの修正された間違い:

  • 外部で使用する場合は、startArray() 関数呼び出しの外部で配列を宣言します。
  • 変更する場合は、配列を参照として渡します
  • cout << i の代わりに cout << beadArray[i]

.

using namespace std;    
#include <iostream>

const int MAX = 14;

int main ()    
{
    void printArray ();
    system ("pause");
    return 0;
}

void startArray (int &beadArray[MAX])
{
    for(int i=0; i<MAX; i++)
        beadArray[i]=4;
    beadArray[6]=0;
    beadArray[13]=0;
}

//**********************************************//

void printArray ()
{
    int beadArray[MAX];
    startArray (beadArray);

    for(int i=0; i<MAX; i++)
        cout<<beadArray[i];
}
于 2012-05-05T20:44:14.990 に答える