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

回答編集履歴

2

バグの修正

2021/01/16 18:53

投稿

kazuma-s
kazuma-s

スコア8222

answer CHANGED
@@ -51,7 +51,7 @@
51
51
  for (i = 1; i <= np2; i++) {
52
52
  for (j = 1; j <= np1; j++)
53
53
  if (epoint1[j][0] == epoint2[i][0] &&
54
- epoint1[j][2] == epoint2[i][1] &&
54
+ epoint1[j][1] == epoint2[i][1] &&
55
55
  epoint1[j][2] == epoint2[i][2]) break;
56
56
  if (j > np1) { // 重複しなかったので
57
57
  conv[i] = ++k; // 新規節点番号を登録

1

コードの改善

2021/01/16 18:53

投稿

kazuma-s
kazuma-s

スコア8222

answer CHANGED
@@ -39,7 +39,6 @@
39
39
  int point2[1024][4];
40
40
  double epoint1[1024][3];
41
41
  double epoint2[1024][3];
42
- double ecomb2[1024][3];
43
42
  int conv[1024];
44
43
 
45
44
  read_data("in.dat1", point1, epoint1);
@@ -49,8 +48,6 @@
49
48
  int np2 = point2[0][0], ne2 = point2[0][1];
50
49
 
51
50
  int i, j, k = np1;
52
- for (i = 1; i <= np1; i++)
53
- for (j = 0; j < 3; j++) ecomb2[i][j] = epoint1[i][j];
54
51
  for (i = 1; i <= np2; i++) {
55
52
  for (j = 1; j <= np1; j++)
56
53
  if (epoint1[j][0] == epoint2[i][0] &&
@@ -58,7 +55,7 @@
58
55
  epoint1[j][2] == epoint2[i][2]) break;
59
56
  if (j > np1) { // 重複しなかったので
60
57
  conv[i] = ++k; // 新規節点番号を登録
61
- for (j = 0; j < 3; j++) ecomb2[k][j] = epoint2[i][j];
58
+ for (j = 0; j < 3; j++) epoint1[k][j] = epoint2[i][j];
62
59
  }
63
60
  else conv[i] = j; // 重複したので、登録済み節点番号 j を使う
64
61
  }
@@ -67,7 +64,8 @@
67
64
 
68
65
  point1[0][0] = k;
69
66
  point1[0][1] = ne1 + ne2;
70
- write_data("in.dat", point1, ecomb2);
67
+ write_data("in.dat", point1, epoint1);
71
68
  }
69
+
72
70
  ```
73
71
  理解できたかどうかのコメントをお願いします。