プログラミングの変数について質問です。
プログラミングの変数について質問です。
次のプログラミングは自分で書いたプログラムの一部です。
void inputmonster(int x[][3], struct monster monster)
{
int i, s, t, m, n;
for(t = 0; t < 2; t++){
s = 0;
while (s < 1){
printf("player%dは好きなモンスターを3つ選んでください\n\n", t+1);
for (i = 0; i<3; i++){
printf("%d体目を選んでください。\n\n", i+1);
for(m = 0; m < 5; m++) printf("%d, %s\n", m+1, monster[m].name);
scanf("%d", &x[t][i]);
printf("%d体目 : %s\n\n", i+1, monster[x[t][i]-1].name);
}
printf("これでよろしいですか?\n");
for(i = 0; i<3; i++) printf("%d体目 : %s ", i+1, monster[x[t][i]-1].name);
printf("1、はい 2、いいえ\n");
scanf("%d", &n);
if(n == 1) s = 1;
else s = 0;
}
}
}
これをコンパイルすると次のようなエラーが表示されます。
monsterbattle.c: 関数 ‘inputmonster’ 内:
monsterbattle.c:497:63: エラー: 添字が付けられた値が、配列、ポインタまたはベクト ルではありません
for(m = 0; m < 5; m++) printf("%d, %s\n", m+1, monster[m].name);
^
monsterbattle.c:499:45: エラー: 添字が付けられた値が、配列、ポインタまたはベクト ルではありません
printf("%d体目 : %s\n\n", i+1, monster[x[t][i]-1].name);
^
monsterbattle.c:503:68: エラー: 添字が付けられた値が、配列、ポインタまたはベクト ルではありません
for(i = 0; i<3; i++) printf("%d体目 : %s ", i+1, monster[x[t][i]-1].na me);
どのように改変すればこのようなエラーを表示しないようにできるのでしょうか?
基本的な質問ではあると思いますが、是非教えていただけるとありがたいです。
よろしくお願いします。
お礼
デバッグできました。 わざわざ回答ありがとうございました。