この記事では、C言語を使って行列を入力し、表示する方法について解説します。
静的な行列と動的な行列の入力方法、一般的な行列の表示方法、転置行列の表示方法、そして逆行列の表示方法について学ぶことができます。
初心者の方でもわかりやすく、サンプルコードを交えて解説していますので、ぜひ参考にしてください。
目次から探す
行列の入力方法
行列をプログラム内で扱うためには、まず行列の入力方法を知る必要があります。
C言語では、静的な行列と動的な行列の2つの方法があります。
静的な行列の入力
静的な行列は、プログラムの実行前にサイズが決まっている行列です。
以下のように、配列を使用して静的な行列を入力することができます。
#include <stdio.h>
#define ROWS 3
#define COLS 3
int main() {
int matrix[ROWS][COLS];
printf("行列の要素を入力してください:\n");
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("行 %d, 列 %d: ", i+1, j+1);
scanf("%d", &matrix[i][j]);
}
}
printf("入力された行列は以下の通りです:\n");
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
上記のコードでは、«ROWS»と«COLS»を定義して行列のサイズを指定しています。
«matrix»という名前の2次元配列を作成し、ユーザーに行列の要素を入力してもらいます。
入力された行列は、2重のループを使用して表示されます。
動的な行列の入力
動的な行列は、プログラムの実行中にサイズが決まる行列です。
以下のように、ポインタとメモリの動的割り当てを使用して動的な行列を入力することができます。
#include <stdio.h>
#include <stdlib.h>
int main() {
int rows, cols;
int **matrix;
printf("行列の行数を入力してください: ");
scanf("%d", &rows);
printf("行列の列数を入力してください: ");
scanf("%d", &cols);
// 行のメモリを割り当てる
matrix = (int **)malloc(rows * sizeof(int *));
for (int i = 0; i < rows; i++) {
// 列のメモリを割り当てる
matrix[i] = (int *)malloc(cols * sizeof(int));
}
printf("行列の要素を入力してください:\n");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("行 %d, 列 %d: ", i+1, j+1);
scanf("%d", &matrix[i][j]);
}
}
printf("入力された行列は以下の通りです:\n");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
// メモリを解放する
for (int i = 0; i < rows; i++) {
free(matrix[i]);
}
free(matrix);
return 0;
}
上記のコードでは、«rows»と«cols»という変数を使用して行列のサイズをユーザーに入力してもらいます。
«matrix»という名前のポインタを作成し、動的にメモリを割り当てます。
ユーザーに行列の要素を入力してもらい、入力された行列を表示します。
最後に、メモリを解放することを忘れないようにしましょう。
静的な行列は、プログラムの実行前にサイズが決まっているため、コンパイル時にメモリが確保されますが、動的な行列は、プログラムの実行中にサイズが決まるため、実行時にメモリを動的に割り当てる必要があります。
次のページ行列の表示方法