行列のサイズが分かっていて、それが小さい場合は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% |
以下は初めて学ぶときには省略しても構わない。 理解するには、 各プログラムを印刷してじっくり読み比べることを勧める。