回答編集履歴

1

ポインタを使わないといけない旨を書いていましたが、全然ポインタや構造体などを使わなくてもいけました。

2021/05/18 05:33

投稿

suugaku_nyumon
suugaku_nyumon

スコア37

test CHANGED
@@ -415,3 +415,205 @@
415
415
  }
416
416
 
417
417
  ```
418
+
419
+ ### 説明(5月18日14時30分追記)
420
+
421
+
422
+
423
+ ポインタを使わないといけないと書きましたが、そんなことありませんでした。
424
+
425
+ 1要素ずつ計算する関数を作れば良いだけでした。
426
+
427
+
428
+
429
+ ### 参考(追記についてのコード)
430
+
431
+ ```C
432
+
433
+ #include<stdio.h>
434
+
435
+
436
+
437
+ int jisu;
438
+
439
+
440
+
441
+ int multij(int fir[][jisu],int sec[][jisu],int i,int j);
442
+
443
+ void disp(int a[][jisu],int b[][jisu],int c[][jisu]);
444
+
445
+
446
+
447
+ int main(void)
448
+
449
+ {
450
+
451
+ do
452
+
453
+ {
454
+
455
+ printf("Enter the dimension.\n");
456
+
457
+ scanf("%d",&jisu);
458
+
459
+ } while(jisu < 2 || jisu > 6);
460
+
461
+
462
+
463
+ int a[jisu][jisu];
464
+
465
+ int b[jisu][jisu];
466
+
467
+ int c[jisu][jisu];
468
+
469
+ printf("\ndefine matrix A.");
470
+
471
+ for(int m=0;m<jisu;m++)
472
+
473
+ {
474
+
475
+ for(int n=0;n<jisu;n++)
476
+
477
+ {
478
+
479
+ printf("\nEnter a[%d][%d]\n",m,n);
480
+
481
+ scanf("%d", &a[m][n]);
482
+
483
+ }
484
+
485
+ }
486
+
487
+
488
+
489
+ printf("\ndefine matrix B.");
490
+
491
+ for(int m=0;m<jisu;m++)
492
+
493
+ {
494
+
495
+ for(int n=0;n<jisu;n++)
496
+
497
+ {
498
+
499
+ printf("\nEnter b[%d][%d]\n",m,n);
500
+
501
+ scanf("%d", &b[m][n]);
502
+
503
+ }
504
+
505
+ }
506
+
507
+
508
+
509
+ for(int m=0;m<jisu;m++)
510
+
511
+ {
512
+
513
+ for(int n=0;n<jisu;n++)
514
+
515
+ {
516
+
517
+ c[m][n] = multij(a,b,m,n);
518
+
519
+ }
520
+
521
+ }
522
+
523
+ disp(a,b,c);
524
+
525
+ }
526
+
527
+
528
+
529
+ int multij(int fir[][jisu],int sec[][jisu],int i,int j)
530
+
531
+ {
532
+
533
+ int valueij = 0;
534
+
535
+ for(int n=0;n<jisu;n++)
536
+
537
+ {
538
+
539
+ valueij += fir[i][n] * sec[n][j];
540
+
541
+ }
542
+
543
+
544
+
545
+ return valueij;
546
+
547
+ }
548
+
549
+
550
+
551
+ void disp(int a[][jisu],int b[][jisu],int c[][jisu])
552
+
553
+ {
554
+
555
+ printf("matrix A\n");
556
+
557
+ for(int i=0;i<jisu;i++)
558
+
559
+ {
560
+
561
+ printf("|");
562
+
563
+ for(int j=0;j<jisu;j++)
564
+
565
+ {
566
+
567
+ printf("%6d",a[i][j]);
568
+
569
+ }
570
+
571
+ printf(" |\n");
572
+
573
+ }
574
+
575
+
576
+
577
+ printf("matrix B\n");
578
+
579
+ for(int i=0;i<jisu;i++)
580
+
581
+ {
582
+
583
+ printf("|");
584
+
585
+ for(int j=0;j<jisu;j++)
586
+
587
+ {
588
+
589
+ printf("%6d",b[i][j]);
590
+
591
+ }
592
+
593
+ printf(" |\n");
594
+
595
+ }
596
+
597
+ printf("multiply A by B\n");
598
+
599
+ for(int i=0;i<jisu;i++)
600
+
601
+ {
602
+
603
+ printf("|");
604
+
605
+ for(int j=0;j<jisu;j++)
606
+
607
+ {
608
+
609
+ printf("%6d",c[i][j]);
610
+
611
+ }
612
+
613
+ printf(" |\n");
614
+
615
+ }
616
+
617
+ }
618
+
619
+ ```