回答編集履歴
2
それぞれのファイルに重複がない場合のコードを追加
test
CHANGED
@@ -119,3 +119,65 @@
|
|
119
119
|
6.6666000000000E+01 6.6666000000000E+01 6.6666000000000E+01
|
120
120
|
|
121
121
|
```
|
122
|
+
|
123
|
+
**追記**
|
124
|
+
|
125
|
+
それぞれのファイルに重複がないのなら、
|
126
|
+
|
127
|
+
1つめのファイルの内容を全部覚えておいて、
|
128
|
+
|
129
|
+
2つめのファイルの値がそこにあるかどうかをチェックすればよいでしょう。
|
130
|
+
|
131
|
+
```C
|
132
|
+
|
133
|
+
#include <stdio.h>
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
int main(void)
|
138
|
+
|
139
|
+
{
|
140
|
+
|
141
|
+
FILE *f1 = fopen("f1.txt", "r");
|
142
|
+
|
143
|
+
if (!f1) return 1;
|
144
|
+
|
145
|
+
FILE *f2 = fopen("f2.txt", "r");
|
146
|
+
|
147
|
+
if (!f2) return 2;
|
148
|
+
|
149
|
+
FILE *f3 = fopen("f3.txt", "w");
|
150
|
+
|
151
|
+
if (!f3) return 3;
|
152
|
+
|
153
|
+
int point1[1][1] = { 4 }, point2[1][1] = { 3 };
|
154
|
+
|
155
|
+
double ep[1024][3], p[3];
|
156
|
+
|
157
|
+
int n = 0, i;
|
158
|
+
|
159
|
+
for (; n < 1024 && fscanf(f1, "%lf%lf%lf", ep[n], ep[n]+1, ep[n]+2) == 3; n++)
|
160
|
+
|
161
|
+
fprintf(f3, "%24.13E%24.13E%24.13E\n", ep[n][0], ep[n][1], ep[n][2]);
|
162
|
+
|
163
|
+
if (n == 1024) { puts("too many data"); return 4; }
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
while (fscanf(f2, "%lf%lf%lf", p, p+1, p+2) == 3) {
|
168
|
+
|
169
|
+
for (i = 0; i < n; i++)
|
170
|
+
|
171
|
+
if (ep[i][0] == p[0] && ep[i][1] == p[1] && ep[i][2] == p[2]) break;
|
172
|
+
|
173
|
+
if (i == n)
|
174
|
+
|
175
|
+
fprintf(f3, "%24.13E%24.13E%24.13E\n", p[0], p[1], p[2]);
|
176
|
+
|
177
|
+
}
|
178
|
+
|
179
|
+
fclose(f1), fclose(f2), fclose(f3);
|
180
|
+
|
181
|
+
}
|
182
|
+
|
183
|
+
```
|
1
コードの修正
test
CHANGED
@@ -20,9 +20,7 @@
|
|
20
20
|
|
21
21
|
for (int i = 0; i < n; i++)
|
22
22
|
|
23
|
-
if (e[i][0] == p[0] && e[i][1] == p[1] && e[i][2] == p[2])
|
23
|
+
if (e[i][0] == p[0] && e[i][1] == p[1] && e[i][2] == p[2]) return 0;
|
24
|
-
|
25
|
-
return 0;
|
26
24
|
|
27
25
|
return 1;
|
28
26
|
|
@@ -44,7 +42,7 @@
|
|
44
42
|
|
45
43
|
FILE *f3 = fopen("f3.txt", "w");
|
46
44
|
|
47
|
-
if (!f3) return
|
45
|
+
if (!f3) return 3;
|
48
46
|
|
49
47
|
int point1[1][1] = { 4 }, point2[1][1] = { 3 };
|
50
48
|
|