- 締切済み
プログラミング修正について
次のようなプログラムをコンパイルしたところ以下のようなエラーが表示されました。 struct monster{ int type; /* タイプ */ char trick[25]; /* 技 */ char trick2[25]; /* 技2 */ int tricktype; /* 技1のタイプ */ int tricktype2; /* 技2のタイプ */ int trickeffect; /* 技1の威力 */ int trickeffect2; /* 技2の威力 */ char name[10]; /* 名前 */ int power; /* 攻撃力 */ int diffence; /* 防御力 */ int speed; /* 素早さ */ int HP; /* 体力 */ /* 1,fire 2,water 3,nature 4,thunder 5,wind */ }; 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); ・ ・ ・ } void inputmonster(int x[][3], struct monster monster) { } monsterbattle.c:497:2: エラー: 2 番目の ‘inputmonster’ の引数用の互換性がない型です inputmonster(a, monster); ^ monsterbattle.c:27:6: 備考: expected ‘struct monster’ but argument is of type ‘struct monster *’ void inputmonster(int x[][3], struct monster monster) ^ monsterbattle.c:499:2: エラー: プログラム内に逸脱した ‘\357’ があります printf("これからバトルを開始します\n\n"); ^ monsterbattle.c:499:2: エラー: プログラム内に逸脱した ‘\274’ があります monsterbattle.c:499:2: エラー: プログラム内に逸脱した ‘\233’ があります monsterbattle.c:501:2: エラー: expected ‘;’ before ‘printf’ printf("player1は%sをくりだした。\n", monster[a[0][0]-1].name); プログラムを修正したいのですが、正直どこを変えればいいのか全くわかりません。 お手数ですが1つ1つ教えていただけるとありがたいです。 よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- not_ace
- ベストアンサー率52% (35/67)
とりあえずひとつはmonsterが配列で定義されているのに 受け取り側(inputmonster)が配列を受け取るとなっていないせいですね。 処理をどんなことをやっているのかわからないですが inputmonster(a, monster[0]); ←こんな感じで呼び出し側で要素を渡す指定するか void inputmonster(int x[][3], struct monster monster[])←受け取り側で配列にするか 上記いずれかの対応が必要です。 2つ目以降は多分全角、半角の問題のような気がします。 inputmonsterの閉じカッコ「}」が全角になっていないでしょうか? 357はおそらくこれだと思われます。 274と233も同じようなものではないかと思われます printf最後の「;」とか・・・ 全角になっている部分が無いかチェックしてみてください。 VisualStudioなどの統合開発環境は入れていますか? コンパイルする前に記述しながら間違いを指摘してくれるので 初心者の方はそういう環境ではじめる方が良いですよ。 コンパイラのみだとエラーの指摘ではわかりづらい部分も多いので。