3.12.2 prog12.c

行列のサイズが分かっていて、それが小さい場合は2次元配列で簡単に扱える。


/*
 * prog12.c --- 2次元配列で行列を
 */

#include <stdio.h>

void display(double A[2][2])
{
  int i, j;
  for (i = 0; i < 2; i++) {
    for (j = 0; j < 2; j++)
      printf("%7.2f ", A[i][j]);
    printf("\n");
  }
}

int main(void)
{
  int i, j;
  double a[2][2] = {{1,2},{3,4}};
  double b[2][2], c[2][2];
  
  /* bの入力 */
  for (i = 0; i < 2; i++)
    for (j = 0; j < 2; j++) {
      printf("b[%d][%d]=", i, j);
      scanf("%lf", &b[i][j]);
    }
  /* c:=a+b */
  for (i = 0; i < 2; i++)
    for (j = 0; j < 2; j++)
      c[i][j] = a[i][j] + b[i][j];

  /* a,b,c を表示 */
  printf("a=\n"); display(a);
  printf("b=\n"); display(b);
  printf("c=\n"); display(c);

  return 0;
}

prog12 の実行結果

oyabun% gcc prog12.c
oyabun% ./a.out 
b[0][0]=4
b[0][1]=3
b[1][0]=2
b[1][1]=1
a=
   1.00    2.00 
   3.00    4.00 
b=
   4.00    3.00 
   2.00    1.00 
c=
   5.00    5.00 
   5.00    5.00 
oyabun%

以下は初めて学ぶときには省略しても構わない。 理解するには、 各プログラムを印刷してじっくり読み比べることを勧める。



桂田 祐史