0

私の関数は main() の外にあります

それはこれです

void Ydisplay(int D1[])
{
 for(int i=0;i<a;i++)
  {
   cout<<"\t<<D1[i];
}

配列D1は動的配列ですエラーは「a」は未定義ですユーザーから取得したため、メインにある必要があります..しかし、他のオプションはありますか?

4

4 に答える 4

1

関数パラメーターとして配列サイズを渡す必要があります。

void Ydisplay(std::size_t len, int D1[])
{
    for (std::size_t i = 0; i != len ;++i)
    {
        std::cout << '\t' << D1[i];
    }
}

ただし、C++ では a を使用しstd:vector<int>ます。

void Ydisplay(std::vector<int> const & D1)
{
    for (int n : D1)
    {
        std::cout << '\t' << n;
    }
}
于 2013-07-20T10:19:52.533 に答える
0

このように機能してください。

void Ydisplay(int D1[])
{
 cin >> a; //Remove getting input from main()
 for(int i=0;i<a;i++)
  {
   cout<<'\t'<<D1[i];
}
于 2013-07-20T10:18:47.783 に答える
0

自分が何をしようとしているのかを理解する必要があると思います。この特定のコードでは、配列 D1 にある要素を出力しようとしています。したがって、D1[0] から D1[n] までの要素を出力します。for ループを使用して、配列 D1 の各要素をトラバースします。int i は、i = 0 から始まり、i < sizeof(D1)/sizeof(int) である最後の要素までです。変数 a は必要ありません。あなたがやろうとしていることには意味がありません。各行に出力するには、次を試してください。 cout << D1[i] << endl;

于 2013-07-20T18:07:07.903 に答える
0

a関数 Ydisplay() を認識していません。それは main() に対してローカルです。mainaから値を渡します。

関数の構文を次のように変更します。

void Ydisplay(int D1[], int a)
                         ^ add

構文エラー、欠落":

cout<<"\t" <<D1[i];
     //  ^  added
于 2013-07-20T10:20:24.323 に答える