Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語で2つの行列の減算を行うプログラム

2つの行列 MAT1[row][column] と MAT2[row][column] が与えられたとき、両者の差を求め、減算結果を出力するプログラムを作成します。行列の減算は MAT1[n][m] − MAT2[n][m] のように表されます。

C言語で2つの行列の減算を行うプログラム

行列同士の減算を行うためには、両方の行列の行数と列数が同じである必要があります。

実行例

Input:
MAT1[N][N] = { {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}}
MAT2[N][N] = { {9, 8, 7},
    {6, 5, 4},
    {3, 2, 1}}
Output:
-8 -6 -4
-2 0 2
4 6 8

ここで用いるアプローチは以下の通りです。

すべての行と列について両方の行列を走査し、mat1[][] の各要素から mat2[][] の対応する要素を減算して、その結果を result[][] に格納します。すべての行列で行と列の位置は対応したままです。

アルゴリズム

関数 void subtract(int MAT1[][N], int MAT2[][N], int RESULT[][N]) 内
    ステップ1 -> 整数 i, j を宣言する
    ステップ2 -> i = 0 から i < N まで i++ しながらループ
        j = 0 から j < N まで j++ しながらループ
        RESULT[i][j] に MAT1[i][j] - MAT2[i][j] を代入する
関数 int main() 内
    ステップ1 -> 行列 MAT1[N][N] と MAT2[N][N] を宣言する
    ステップ2 -> 関数 subtract(MAT1, MAT2, RESULT) を呼び出す
    ステップ3 -> 結果を出力する

サンプルコード

#include <stdio.h>
#define N 3
// この関数は MAT2[][] を MAT1[][] から引き、
// 結果を RESULT[][] に格納します
void subtract(int MAT1[][N], int MAT2[][N], int RESULT[][N]) {
    int i, j;
    for (i = 0; i < N; i++)
    for (j = 0; j < N; j++)
    RESULT[i][j] = MAT1[i][j] - MAT2[i][j];
}
int main() {
    int MAT1[N][N] = { {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9}
        };
    int MAT2[N][N] = { {9, 8, 7},
        {6, 5, 4},
        {3, 2, 1}
    };
    int RESULT[N][N]; // 結果を格納するための行列
    int i, j;
    subtract(MAT1, MAT2, RESULT);
    printf("Resultant matrix is \n");
    for (i = 0; i < N; i++) {
        for (j = 0; j < N; j++)
        printf("%d ", RESULT[i][j]);
        printf("\n");
    }
    return 0;
}

出力

上記のコードを実行すると、次のような出力が得られます。

Resultant matrix is
-8 -6 -4
-2  0  2
 4  6  8
  1. C言語でアームストロング数を判定するプログラムの作成方法

    アームストロング数とは? 本記事では、入力された整数 n がアームストロング数(Armstrong number)であるかどうかを判定するCプログラムについて解説します。 アームストロング数とは、各桁の数字をそれぞれ「桁数(位数)」でべき乗し、その総和が元の数値と等しくなる数のことです。例えば、4桁の数 1634 は 14 + 64 + 34 + 44 = 1 + 1296 + 81 + 256 = 1634 となるため、アームストロング数です。 アームストロング数を求める基本的な考え方は、次の式のように表せます。 計算式: wxyz…. = pow(w, n) + pow(x, n) + p

  2. 【初心者向け】長方形の面積と外周を求めるC言語プログラムの書き方

    長方形の「長さ」と「幅」が与えられたとき、その面積と外周(周囲の長さ)を計算する方法を、C言語のサンプルコード付きでわかりやすく解説します。 長方形とは? 長方形とは、4つの辺と4つの直角(90度)を持つ2次元の図形です。長方形では、隣り合う辺の長さは異なりますが、向かい合う辺どうしは必ず同じ長さになります。また、2本の対角線も互いに等しい長さを持ちます。 下の図は長方形を模式的に表したものです。 ここで、Aは長方形の幅(breadth)、Bは長さ(length)を表しています。 面積と外周の計算式 面積の公式 長方形の面積は、次の式で求められます。 面積 = 長さ × 幅 外周の公式