私の関数は main() の外にあります
それはこれです
void Ydisplay(int D1[])
{
for(int i=0;i<a;i++)
{
cout<<"\t<<D1[i];
}
配列D1は動的配列ですエラーは「a」は未定義ですユーザーから取得したため、メインにある必要があります..しかし、他のオプションはありますか?
関数パラメーターとして配列サイズを渡す必要があります。
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;
}
}
このように機能してください。
void Ydisplay(int D1[])
{
cin >> a; //Remove getting input from main()
for(int i=0;i<a;i++)
{
cout<<'\t'<<D1[i];
}
自分が何をしようとしているのかを理解する必要があると思います。この特定のコードでは、配列 D1 にある要素を出力しようとしています。したがって、D1[0] から D1[n] までの要素を出力します。for ループを使用して、配列 D1 の各要素をトラバースします。int i は、i = 0 から始まり、i < sizeof(D1)/sizeof(int) である最後の要素までです。変数 a は必要ありません。あなたがやろうとしていることには意味がありません。各行に出力するには、次を試してください。 cout << D1[i] << endl;
a
関数 Ydisplay() を認識していません。それは main() に対してローカルです。maina
から値を渡します。
関数の構文を次のように変更します。
void Ydisplay(int D1[], int a)
^ add
構文エラー、欠落"
:
cout<<"\t" <<D1[i];
// ^ added