【C言語】行列同士の和を求める方法

この記事では、C言語を使って行列の和を求める方法を学ぶことができます。

行列のデータ構造の定義方法や、行列の和を求める関数の実装方法を解説し、サンプルコードを通じて具体的な手順を理解することができます。

初心者の方でもわかりやすく、実際のプログラム作成に役立つ内容です。

目次から探す

C言語での行列の和の計算方法

行列の和を求めるためには、まず行列のデータ構造を定義する必要があります。

次に、行列のデータ構造を定義する方法を学びます。

そして、行列の和を求めるための関数を実装します。

最後に、実際のサンプルコードを解説していきます。

行列のデータ構造の定義

行列をプログラムで扱うためには、適切なデータ構造を定義する必要があります。

一般的には、2次元配列を使用して行列を表現します。

C言語では、多次元配列を使用することで行列を表現することができます。

#define ROWS 3
#define COLS 3
int matrix[ROWS][COLS];

上記の例では、3行3列の行列を表すために、matrixという名前の2次元配列を定義しています。

行列の要素には、整数型のデータを格納することができます。

行列のデータ構造の定義方法

行列のデータ構造を定義する方法はいくつかありますが、ここでは2次元配列を使用した方法を紹介します。

他の方法としては、ポインタを使用して動的にメモリを確保する方法や、構造体を使用する方法などがあります。

2次元配列を使用する場合、行列の要素には直接アクセスすることができます。

例えば、matrix[0][0]は行列の先頭の要素を表し、matrix[2][2]は行列の最後の要素を表します。

行列の和を求める関数の実装

行列の和を求めるためには、各要素を対応する位置同士で足し合わせる必要があります。

行列の和を求めるための関数を以下のように実装することができます。

void matrixAddition(int matrix1[ROWS][COLS], int matrix2[ROWS][COLS], int result[ROWS][COLS]) {
    for (int i = 0; i < ROWS; i++) {
        for (int j = 0; j < COLS; j++) {
            result[i][j] = matrix1[i][j] + matrix2[i][j];
        }
    }
}

上記の例では、matrix1matrix2という2つの行列を受け取り、それらの和をresultという行列に格納しています。

2重のループを使用して、各要素を足し合わせています。

行列の和を求める関数の実装方法

行列の和を求める関数を実装する方法はいくつかありますが、ここでは引数として行列を受け取り、結果を別の行列に格納する方法を紹介しました。

他の方法としては、ポインタを使用して直接結果を格納する方法や、グローバル変数を使用する方法などがあります。

サンプルコードの解説

以下に、実際のサンプルコードを解説します。

#include <stdio.h>
#define ROWS 3
#define COLS 3
void matrixAddition(int matrix1[ROWS][COLS], int matrix2[ROWS][COLS], int result[ROWS][COLS]) {
    for (int i = 0; i < ROWS; i++) {
        for (int j = 0; j < COLS; j++) {
            result[i][j] = matrix1[i][j] + matrix2[i][j];
        }
    }
}
int main() {
    int matrix1[ROWS][COLS] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    int matrix2[ROWS][COLS] = {{9, 8, 7}, {6, 5, 4}, {3, 2, 1}};
    int result[ROWS][COLS];
    matrixAddition(matrix1, matrix2, result);
    printf("行列の和:\n");
    for (int i = 0; i < ROWS; i++) {
        for (int j = 0; j < COLS; j++) {
            printf("%d ", result[i][j]);
        }
        printf("\n");
    }
    return 0;
}

上記のサンプルコードでは、2つの3行3列の行列を定義し、matrixAddition関数を使用して行列の和を求めています。

結果をresultという行列に格納し、printf関数を使用して結果を表示しています。

以上が、C言語で行列の和を求める方法についての解説です。

行列のデータ構造の定義方法や行列の和を求める関数の実装方法を理解し、サンプルコードを参考にして自分で行列の和を求めるプログラムを作成してみてください。

目次から探す