プログラミング初心者です。大目に見てください。

C言語関連 | プログラミング59閲覧xmlns="http://www.w3.org/2000/svg">250

ベストアンサー

0

ThanksImg質問者からのお礼コメント

遅れてすみません。動画視聴いたしました。 わざわざ動画作っていただきありがたいです。 とても分かりやすかったです!! ありがとうございました!

お礼日時:1/25 19:33

その他の回答(1件)

0

あちこちおかしいのですけれど、まず ・C言語の基礎(?)としてダメ なとこだけ。 1. int 型整数 x, y, z があるとして。 if (x == y == z) // 3つは等値か? という書き方は、できません。 2項同士の比較式にわけ、それを論理演算子 && (AND, かつ) で結合して書きます。 if (x == y && y == z) みたく。 if (x == y == z) でもコンパイルエラーにはなりません。 文法上は合法です。 けど、まったく違う意味になります。 (めんどうなので、これ以上は説明しません。) 他の比較演算子でも、同じです。 数学的記法に慣れた人(?)に大野かも知れませんが、よく 知恵袋で見かけるのは if (10 <= x < 20) // x は10以上20未満か? みたいなコード。 C言語では、そういう意味になりません。 2項同士の比較式複数に分け、論理演算子で結合します。 2. 配列の「外」を参照してます。 2段ネスト for ループの中。 3要素の配列 int r[3]; があったとします。 Cの配列のインデックスは 0 始まり ですから、存在する要素は r[0], r[1], r[2] の3つ。 インデックスは 0, 1, 2 です。それ以外は、配列の「外」 を不法に参照することになる。 あなたのforループのインデックス変数 m, n は 0, 1, 2 をとります。 m や n が 2 だとしましょう。 このときも、中で r[m+1] だの r[n+2] だのをします。 2+1は3, 2+2は4. 全部配列の「外」です、 メモリの不法アクセス。