ユーザーが入力した座席を X でマークし、マークされた座席で飛行機のレイアウト (配列) を再度表示し、毎回それを繰り返す必要があります。これは私のコードです。できれば、それを 2 つの関数に分割するのを手伝ってください。最初の関数は配列を出力し、2 番目の関数はユーザー入力を取得して座席をマークし、前の関数を呼び出して表示を更新する必要があります。
私の出力は次のようになります。
1 X B C D 2 A X C D 3 A B C D 4 A B X D 5 A B C D 6 A B C D 7 A B C D
私のコードは次のとおりです。
#include <iostream>
using namespace std;
int main ()
{
int rowNumber=-1, columnNumber=-1;
char columnLetter;
char airplane[7][4] = {{'A', 'B', 'C', 'D'},
{'A', 'B', 'C', 'D'},
{'A', 'B', 'C', 'D'},
{'A', 'B', 'C', 'D'},
{'A', 'B', 'C', 'D'},
{'A', 'B', 'C', 'D'},
{'A', 'B', 'C', 'D'}};
for (int i=0; i<7; i++)
{
cout<<i+1<<"\t";
for (int j=0; j<4; j++)
{
cout<<airplane[i][j]<<"\t";
}
cout<<"\n";
}
do
{
cout<<"Enter row number:"<<endl;
cin>>rowNumber;
}while ((rowNumber<1)||(rowNumber>7));
do
{
cout<<"Enter column letter:"<<endl;
cin>>columnLetter;
}while (columnLetter!='A'&&columnLetter!='B'&&columnLetter!='C'&&columnLetter!='D');
if (columnLetter=='A')
{
columnNumber=0;
}
else if (columnLetter=='B')
{
columnNumber=1;
}
if (columnLetter=='C')
{
columnNumber=2;
}
else if (columnLetter=='D')
{
columnNumber=3;
}
airplane[rowNumber][columnNumber]='X';
system ("PAUSE");
return 0;
}
これを試しましたが、コンパイルされないため、マークされた座席を出力する次の関数に移動できません。
#include <iostream>
using namespace std;
void fillArray (char array[][4]);
int main ()
{
char airplane[7][4] = {{'A', 'B', 'C', 'D'},
{'A', 'B', 'C', 'D'},
{'A', 'B', 'C', 'D'},
{'A', 'B', 'C', 'D'},
{'A', 'B', 'C', 'D'},
{'A', 'B', 'C', 'D'},
{'A', 'B', 'C', 'D'}};
fillArray (airplane[][4]);
system ("PAUSE");
return 0;
}
void fillArray (char array[][4])
{
for (int i=0; i<7; i++)
{
cout<<i+1<<"\t";
for (int j=0; j<4; j++)
{
cout<<array[i][j]<<"\t";
}
cout<<"\n";
}
return;
}
enter code here