今日の人気記事

  1. 配列に格納した数値を昇順ソート
  2. サンプルプログラム集
  3. 変数の値を出力 - printf 関数
  4. MinGW - gcc のインストール - Windows環境
  5. 10進数を2進数に変換

入力した行列の差(引き算)を計算

スポンサーリンク

行列の差(引き算)を計算するサンプルプログラムを紹介します。

ここでは入力した 2x3 の行列の差を計算します。

行列の差

入力した行列「A」

$$ A = \left( \begin{array}{ccc} a_{11} & a_{12} & a_{13}\\ a_{21} & a_{22} & a_{23} \end{array} \right) $$

と行列「B」

$$ B = \left( \begin{array}{ccc} b_{11} & b_{12} & b_{13}\\ b_{21} & b_{22} & b_{23} \end{array} \right) $$

の差(引き算)

$$ C = A + B = \left( \begin{array}{ccc} a_{11}-b_{11} & a_{12}-b_{12} & a_{13}-b_{13}\\ a_{21}-b_{21} & a_{22}-b_{22} & a_{23}-b_{23} \end{array} \right) $$

を計算します。

スポンサーリンク

サンプルプログラム

それではサンプルプログラムをみてみましょう。

/*
 * C言語のサンプルプログラム - Webkaru
 * - 入力した行列の差(引き算)を計算 -
 */
#include <stdio.h>

int main(void){

  int i, j;

  /* 行列 */
  int a[2][3], b[2][3], c[2][3];

  printf("\n1つ目の行列 A を入力\n");
  for(i=0;i<2;++i){
    for(j=0;j<3;++j){
      printf("A[%d][%d] = ", i+1, j+1);
      scanf("%d", &a[i][j]);
    }
  }

  printf("\n2つ目の行列 B を入力\n");
  for(i=0;i<2;++i){
    for(j=0;j<3;++j){
      printf("B[%d][%d] = ", i+1, j+1);
      scanf("%d", &b[i][j]);
    }
  }

  /* 行列の差(引き算) */
  for(i=0;i<2;++i){
    for(j=0;j<3;++j){
      c[i][j] = a[i][j] - b[i][j];
    }
  }

  printf("\n行列 C = A - B\n");
  for(i=0;i<2;++i){
    for(j=0;j<3;++j){
      printf("C[%d][%d] = %d\n", i+1, j+1, c[i][j]);
    }
  }

  return 0;
}

サンプルプログラムで使っている構文

実行結果

いくつかの実行結果です。

1つ目の行列 A を入力
A[1][1] = 1
A[1][2] = 1
A[1][3] = 1
A[2][1] = 1
A[2][2] = 1
A[2][3] = 1

2つ目の行列 B を入力
B[1][1] = 1
B[1][2] = 1
B[1][3] = 1
B[2][1] = 1
B[2][2] = 1
B[2][3] = 1

行列 C = A - B
C[1][1] = 0
C[1][2] = 0
C[1][3] = 0
C[2][1] = 0
C[2][2] = 0
C[2][3] = 0
1つ目の行列 A を入力
A[1][1] = 3   
A[1][2] = 5
A[1][3] = 2
A[2][1] = 12
A[2][2] = 6
A[2][3] = 21

2つ目の行列 B を入力
B[1][1] = 4
B[1][2] = 7
B[1][3] = 2
B[2][1] = 8
B[2][2] = 12
B[2][3] = 9

行列 C = A - B
C[1][1] = -1
C[1][2] = -2
C[1][3] = 0
C[2][1] = 4
C[2][2] = -6
C[2][3] = 12

このように行列の差を計算します。

スポンサーリンク

関連記事(一部広告含む)