質問編集履歴

2

編集

2018/07/28 12:54

投稿

carnage0216
carnage0216

スコア194

test CHANGED
File without changes
test CHANGED
@@ -224,6 +224,8 @@
224
224
 
225
225
  <編集>7/28
226
226
 
227
+ 以下が正しいプログラムです。皆様の知恵をお借りしてできました。どうもありがとうございます。
228
+
227
229
  ```
228
230
 
229
231
  #include <stdio.h>

1

編集

2018/07/28 12:54

投稿

carnage0216
carnage0216

スコア194

test CHANGED
File without changes
test CHANGED
@@ -219,3 +219,177 @@
219
219
  x=1, y=2, z=3
220
220
 
221
221
  ```なのですが、私のプログラムの出した答えは正しいのでしょうか?紙にも計算してみましたがサイトとは違う答えになりました。
222
+
223
+
224
+
225
+ <編集>7/28
226
+
227
+ ```
228
+
229
+ #include <stdio.h>
230
+
231
+ #include <time.h>
232
+
233
+
234
+
235
+ #define N 3
236
+
237
+
238
+
239
+ int main(void) {
240
+
241
+
242
+
243
+ clock_t start, end;
244
+
245
+ start = clock();
246
+
247
+
248
+
249
+
250
+
251
+ float a[N][N+1] = {
252
+
253
+ {5,-1,-1,0},
254
+
255
+ { 2,1,-3,-5 },
256
+
257
+ { 1,1,1 ,6} }; // The matrix
258
+
259
+
260
+
261
+ int t;
262
+
263
+ int u;
264
+
265
+ for (t = 0; t <= 3; t++) {
266
+
267
+ for (u = 0; u <= 3; u++) {
268
+
269
+ printf("中身は%fです\n", a[t][u]);
270
+
271
+ //printf("中身は%fです\n", a[0][0]);
272
+
273
+ //printf("中身は%fです\n", a[0][0]);
274
+
275
+ }}
276
+
277
+ int i;
278
+
279
+
280
+
281
+ float d = a[1][0] / a[0][0];
282
+
283
+
284
+
285
+
286
+
287
+ for (i = 0; i <= 3; i++) {//forを使う上で上限がなかったので3までが上限なのでi<=3と書いた。
288
+
289
+ a[1][i] = a[1][i] - a[0][i] * d;
290
+
291
+ {
292
+
293
+ printf("a[1][%d]=%fとなる\n", i,a[1][i]);
294
+
295
+ }
296
+
297
+
298
+
299
+ //printf("a[1][%d]= a[1][%d]- a[0][%d]* a[0][%d]/ a[0][%d]である\n", i, i, i, i, i);
300
+
301
+
302
+
303
+ }
304
+
305
+
306
+
307
+ //printf("%fです\n", a[1][0]);
308
+
309
+ //printf("%fです\n", a[1][1]);
310
+
311
+ //printf("%fです\n", a[1][2]);
312
+
313
+ //printf("%fです\n", a[1][3]);
314
+
315
+
316
+
317
+ //int I;//forを使ってまとめた。
318
+
319
+ //for (I = 0; I <= 3; I++) {
320
+
321
+ //printf("forを使うと%fとなる\n", a[1][I]);
322
+
323
+ //}
324
+
325
+
326
+
327
+ float r;
328
+
329
+ r = a[2][0] / a[0][0];
330
+
331
+ for (i = 0; i <= 3; i++) {
332
+
333
+ a[2][i] = a[2][i] - a[0][i] * r;
334
+
335
+ }
336
+
337
+ int I;
338
+
339
+ for (I = 0; I <= 3; I++) {
340
+
341
+ printf("a[2][%d]=%fとなる\n", I,a[2][I]);
342
+
343
+ }
344
+
345
+
346
+
347
+ float z;
348
+
349
+ z= a[2][1] / a[1][1];
350
+
351
+ int y; //iは1から3まで入るのでkに+1した形で入ってもらいiを利用する。kはforより3までとする。
352
+
353
+ for (y = 0; y <= 3; y++) {
354
+
355
+ a[2][y] = a[2][y] - a[1][y] * z;
356
+
357
+ printf("a[2][%d]=%fとなる\n", y, a[2][y]);
358
+
359
+ }
360
+
361
+
362
+
363
+ float g = a[2][3] / a[2][2];
364
+
365
+ printf("Z=%f\n", g);
366
+
367
+
368
+
369
+ float h;
370
+
371
+ h = a[1][3] / a[1][1] - a[1][2] / a[1][1]* a[2][3] / a[2][2];
372
+
373
+ printf("Y=%f\n", h);
374
+
375
+
376
+
377
+ float j;
378
+
379
+ j = h / a[0][0] + g / a[0][0];
380
+
381
+ printf("X=%f\n", j);
382
+
383
+ end = clock();
384
+
385
+ printf("%f sec\n", (double)(end - start) / CLOCKS_PER_SEC);
386
+
387
+
388
+
389
+ return 0;
390
+
391
+ }
392
+
393
+
394
+
395
+ ```