はじめまして。どうぞよろしくお願いいたします。
C言語の学習を始めたものですが、質問があります。
コードは平成23年春季の基本情報技術者の午後にあるC言語問題なのですが、
そのプログラムの動きを再現しようとした際に、タイトルの疑問に当りました。
https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2011h23_1/2011h23tokubetsu_fe_pm_qs.pdf
問題内に、以下の関数があります。
~以下抜粋
void check_seats(char class, int num, SEAT *hall[ROWNUM],
POSITION *pos) {
int cnt, found = 0, no, row;
for (row = 0; row < ROWNUM; row++) { cnt = 0; for (no = 0; hall[row][no].seat_class != '\0'; no++) { if ((hall[row][no].seat_class == class) && (hall[row][no].reserved == 0)) {
~ 抜粋ここまで
この関数内でSEAT型構造体の要素にhall[row][no]が使われている為、SEAT *hall[ROWNUM]に渡すコードをmain関数から試しているのですが、上手くゆきません。
以下が、main内のコードですがgccのコンパイルでエラーとなります。
int main(void)
{
SEAT *hall[ROWNUM]={ //ROWNUM=26列分の座席表の状態を代入。テスト用に3列分を作成。
{{'a',0},{'a',0},{'s',0},{'s',0},{'s',0},{'s',0},{'s',0},{'s',0}, {'a',0},{'a',0},{'\0',0}}, //1列目
{{'a',0},{'a',0},{'a',0},{'s',0},{'s',0},{'s',0},{'s',0},{'s',0},{'s',0}, {'a',0},{'a',0},{'a',0},{'\0',0}}, //2列目
{{'a',0},{'a',0},{'a',0},{'a',0},{'s',0},{'s',0},{'s',0},{'s',0},{'s',0},{'s',0}, {'a',0},{'a',0},{'a',0},{'a',0},{'\0',0}}, //3列目
};
POSITION *pos;
check_seats('s',2,hall,pos); //Sクラスの2席の空き座席を確認する
return 0;
}
上記のmain関数の書き方を教えていただけますと助かります。
回答2件
あなたの回答
tips
プレビュー