回答編集履歴

4

マークアップに言語指定を追加

2017/05/10 06:48

投稿

haru666
haru666

スコア1591

test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  ピタゴラスの定理の結果を出力するところのコードをよく見てみよう。
26
26
 
27
- ```
27
+ ```C#
28
28
 
29
29
  for (a = 0; a < sahen.GetLength(0); a++)
30
30
 

3

解説の追加

2017/05/10 06:48

投稿

haru666
haru666

スコア1591

test CHANGED
@@ -9,3 +9,85 @@
9
9
  追記:for 文で c が Lengthと同じ値になったところで止まってるから、uhen[c]はOutOfRangeになるよね
10
10
 
11
11
  例外はどこで発生したかちゃんと見ましょう。そうすれば自分で分かるはずです。
12
+
13
+
14
+
15
+
16
+
17
+ 追記2:
18
+
19
+
20
+
21
+ **不具合が起きている理由**
22
+
23
+
24
+
25
+ ピタゴラスの定理の結果を出力するところのコードをよく見てみよう。
26
+
27
+ ```
28
+
29
+ for (a = 0; a < sahen.GetLength(0); a++)
30
+
31
+ {
32
+
33
+ for (b = 0; b < sahen.GetLength(1); b++)
34
+
35
+ {
36
+
37
+ sahen[a, b] = ((a * a) + (b * b));
38
+
39
+
40
+
41
+ if (sahen[a, b] == uhen[c])
42
+
43
+ {
44
+
45
+ Console.Write("{0} * {0} + {1} * {1} = {2} * {2} ", a, b, c);
46
+
47
+ Console.WriteLine();
48
+
49
+ Console.Write(sahen[a, b] + " = " + uhen[c]);
50
+
51
+ Console.WriteLine();
52
+
53
+ Console.WriteLine();
54
+
55
+
56
+
57
+ }
58
+
59
+ }
60
+
61
+ }
62
+
63
+ ```
64
+
65
+
66
+
67
+ cは変動しているだろうか。
68
+
69
+ cが記述されている箇所を抜き出してみよう。
70
+
71
+ `if (sahen[a, b] == uhen[c])`
72
+
73
+ `Console.Write("{0} * {0} + {1} * {1} = {2} * {2} ", a, b, c);`
74
+
75
+ `Console.Write(sahen[a, b] + " = " + uhen[c]);`
76
+
77
+
78
+
79
+ この中に、cを変動させているコードはあるかな?
80
+
81
+ ないよね。
82
+
83
+ つまり、cは変動していない。
84
+
85
+
86
+
87
+ この時のcが102だから、Index Out Of Range(配列の要素の範囲外にアクセスしている例外)が出ているけど、これを直せば=この証明が上手くいくわけじゃあないよね。
88
+
89
+
90
+
91
+ 結果を探してくるコードをちゃんと挟まなきゃいけない。
92
+
93
+ c を 1 から 100 まで動かして、sahen[a, b]とuhen[c]が一致するかを調べるようにしなきゃダメさ。

2

2017/05/10 06:47

投稿

haru666
haru666

スコア1591

test CHANGED
File without changes

1

追記

2017/05/10 06:10

投稿

haru666
haru666

スコア1591

test CHANGED
@@ -3,3 +3,9 @@
3
3
 
4
4
 
5
5
  cの値更新してないしっていうケアレスミスだね。
6
+
7
+
8
+
9
+ 追記:for 文で c が Lengthと同じ値になったところで止まってるから、uhen[c]はOutOfRangeになるよね
10
+
11
+ 例外はどこで発生したかちゃんと見ましょう。そうすれば自分で分かるはずです。