コンパイルエラーについて
次のようなプログラムをうつと以下のようなコンパイルエラーが表示されます。
main(){
int a[2][3];
struct monster monster[5] = {
{ 1, "a", "b", 1, 2, 120, 80, "v", 60, 60, 60, 100},
{ 2, "a", "b", 2, 3, 120, 80, "w", 60, 60, 60, 100},
{ 3, "a", "b", 3, 4, 120, 80, "x", 60, 60, 60, 100},
{ 4, "a", "b", 4, 5, 120, 80, "y", 60, 60, 60, 100},
{ 5, "a", "b", 5, 1, 120, 80, "z", 60, 60, 60, 100},
};
struct monster monster2[5] = {
{ 1, "a", "b", 1, 2, 120, 80, "v", 60, 60, 60, 100},
{ 2, "a", "b", 2, 3, 120, 80, "w", 60, 60, 60, 100},
{ 3, "a", "b", 3, 4, 120, 80, "x", 60, 60, 60, 100},
{ 4, "a", "b", 4, 5, 120, 80, "y", 60, 60, 60, 100},
{ 5, "a", "b", 5, 1, 120, 80, "z", 60, 60, 60, 100},
};
inputmonster(a, monster);
printf("これからバトルを開始します\n\n");
printf("player1は%sをくりだした。\n", monster[a[0][0]-1].name);
printf("player2は%sをくりだした。\n", monster2[a[1][0]-1].name);
battle(a, monster, monster2);
return 0;
}
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: 関数 ‘main’ 内:
monsterbattle.c:499:15: 警告: 互換性のないポインタ型から 1 番目の ‘inputmonster’ の引数に渡しています
inputmonster(&a, monster);
^
monsterbattle.c:27:6: 備考: expected ‘int * (*)[3]’ but argument is of type ‘int (*)[2][3]’
void inputmonster(int *x[][3], struct monster monster[])
^
monsterbattle.c:507:9: 警告: 互換性のないポインタ型から 1 番目の ‘battle’ の引数に渡しています
battle(a, monster, monster2);
^
monsterbattle.c:232:6: 備考: expected ‘int *’ but argument is of type ‘int (*)[3]’
void battle(int a[2], struct monster monster[], struct monster monster2[])
^
すいませんが、あまりエラーの詳細がわからず困っています。
どこをどのように変更すべき表示なのでしょうか?
よえろしくお願いします。
補足
仮の最高点をはじめのデータに設定 その後のforは次データの i=1 から始まってます。 とあるのですが、forは次データの i=1 から始まってますが、いまいち分かりません。詳しく教えてください。宜しくおねがいします。