teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

文言修正

2020/06/30 12:29

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -1,4 +1,4 @@
1
- コンパイルエラーは出ませんが、`GaussianElimination()`の以下の箇所で`i`が`3`のときに`a`,`A`,`b`に対して範囲外アクセスしていますよ。
1
+ コンパイルエラーは出ませんが、`GaussianElimination()`の以下の箇所で`i`が`3`のときに`a[i]`,`A[i]`,`b[i]`範囲外アクセスしていますよ。
2
2
  ```C++
3
3
  for (int i = k + 1; i <= N; i++) {
4
4
  int B = a[i][k] / a[k][k];

1

指摘追加

2020/06/30 12:29

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -1,5 +1,10 @@
1
- コンパイルエラーは出ませんが、`GaussianElimination()`の以下の箇所で範囲外アクセスしていますよ。
1
+ コンパイルエラーは出ませんが、`GaussianElimination()`の以下の箇所で`i`が`3`のときに`a`,`A`,`b`に対して範囲外アクセスしていますよ。
2
2
  ```C++
3
3
  for (int i = k + 1; i <= N; i++) {
4
- int B = a[i][k] / a[k][k]; // aの要素数は3なので、iが3のときに範囲外アクセス
4
+ int B = a[i][k] / a[k][k];
5
+ for (int j = k + 1; j < N; j++) {
6
+ A[i][j] = A[i][j] - A[i][k] * A[k][j];
7
+ }
8
+ b[i] = b[i] - A[i][k] * b[k];
9
+ }
5
10
  ```