C言語で2次元配列に対して算術演算を行う方法を解説!サンプルコード付き
配列(Array)とは、関連性のある複数のデータ項目を、たった1つの名前でまとめて管理できるようにした仕組みです。
例えば int student[30]; と宣言すれば、「student」という1つの変数名だけで30個分のデータを格納できます。
配列に対する主な操作
探索(Searching):特定の要素が配列内に存在するかどうかを調べる操作です。
ソート(Sorting):配列内の要素を昇順または降順に並べ替える操作です。
走査(Traversing):配列内のすべての要素を先頭から順番に処理していく操作です。
挿入(Inserting):配列に新しい要素を追加する操作です。
削除(Deleting):配列から不要な要素を取り除く操作です。
2次元配列の算術演算の基本ロジック
2つの2次元配列 A と B に対して、加算・減算・乗算・除算・剰余の5種類の演算を一度に行うには、二重のforループを使って対応する要素同士を順に処理します。基本となるロジックは以下のとおりです。
for(row = 0; row < i; row++){
for(col = 0; col < j; col++){
add[row][col] = A[row][col] + B[row][col];
sub[row][col] = A[row][col] - B[row][col];
mul[row][col] = A[row][col] * B[row][col];
div[row][col] = A[row][col] / B[row][col];
mod[row][col] = A[row][col] % B[row][col];
}
}
演算結果を表示するロジック
計算結果を見やすく表形式で出力するには、同じく二重ループの中で printf を使って各要素を順番に表示します。
printf("\nAdd\t Sub\t Mul\t Div\t Mod\n");
printf("-------------------------------\n");
for(row = 0; row < i; row++){
for(col = 0; col < j; col++){
printf("\n%d \t ", add[row][col]);
printf("%d \t ", sub[row][col]);
printf("%d \t ", mul[row][col]);
printf("%.2f \t ", div[row][col]);
printf("%d \t ", mod[row][col]);
}
}
サンプルプログラム(C言語)
以下は、2次元配列に対して算術演算を実行するCプログラムの完全なコードです。
#include<stdio.h>
int main(){
int i, j, row, col, A[20][20], B[20][20];
int add[10][10], sub[10][10], mul[10][10], mod[10][10];
float div[10][10];
printf("enter no: of rows and columns:\n");
scanf("%d %d", &i, &j);
printf("enter elements of 1st array:\n");
for(row = 0; row < i; row++){
for(col = 0; col < j; col++){
scanf("%d", &A[row][col]);
}
}
printf("enter elements of 2nd array:\n");
for(row = 0; row < i; row++){
for(col = 0; col < j; col++){
scanf("%d", &B[row][col]);
}
}
for(row = 0; row < i; row++){
for(col = 0; col < j; col++){
add[row][col] = A[row][col] + B[row][col];
sub[row][col] = A[row][col] - B[row][col];
mul[row][col] = A[row][col] * B[row][col];
div[row][col] = A[row][col] / B[row][col];
mod[row][col] = A[row][col] % B[row][col];
}
}
printf("\nAdd\t Sub\t Mul\t Div\t Mod\n");
printf("-------------------------------\n");
for(row = 0; row < i; row++){
for(col = 0; col < j; col++){
printf("\n%d \t ", add[row][col]);
printf("%d \t ", sub[row][col]);
printf("%d \t ", mul[row][col]);
printf("%.2f \t ", div[row][col]);
printf("%d \t ", mod[row][col]);
}
}
return 0;
}
注意: このプログラムでは A と B がどちらも int 型のため、除算は小数点以下が切り捨てられる整数除算となり、その結果が float 型の div に代入されます。より正確な商を求めたい場合は、(float)A[row][col] / B[row][col] のようにキャストを行ってください。
実行結果
上記のプログラムをコンパイルして実行すると、以下のような出力が得られます。
enter no: of rows and columns: 3 4 enter elements of 1st array: 1 2 4 5 6 7 3 8 3 2 1 8 enter elements of 2nd array: 1 2 1 2 1 3 4 2 1 2 1 1 Add Sub Mul Div Mod ------------------------------- 2 0 1 1.00 0 4 0 4 1.00 0 5 3 4 4.00 0 7 3 10 2.00 1 7 5 6 6.00 0 10 4 21 2.00 1 7 -1 12 0.00 3 10 6 16 4.00 0 4 2 3 3.00 0 4 0 4 1.00 0 2 0 1 1.00 0 9 7 8 8.00 0
まとめ
このように、二重のforループを活用することで、2次元配列の対応する要素同士に対して加算・減算・乗算・除算・剰余といった算術演算をシンプルに実装できます。行列のサイズ(行数・列数)分だけ繰り返し処理を行うことがポイントです。
-
Windows 11/10のコマンドプロンプトで四則演算を実行する方法
Windows 11/10のコマンドプロンプトには、実は簡易的な電卓機能が組み込まれています。「set /a」コマンドを使えば、2つ以上の数値に対する加算(足し算)、減算(引き算)、乗算(掛け算)、除算(割り算)といった基本的な算術演算を手軽に実行できます。それぞれの操作に対応したコマンドは非常にシンプルです。 Windows 11/10には、標準・プログラマー・関数電卓などの各モードを備えた「電卓」アプリも用意されていますが、小数点を含まない基本的な計算をコマンドプロンプトからサッと行いたい場合には、この方法がとても便利です。 コマンドプロンプトで算術演算を行う手順 まず、Windowsの
-
Windows 11/10のコマンドプロンプトで四則演算を実行する方法
Windows 11/10のコマンドプロンプトには、実は簡易的な電卓機能が備わっています。特別なツールを追加でインストールすることなく、コマンドプロンプト上で四則演算(加算・減算・乗算・除算)を実行でき、2つ以上の数値を使った計算にも対応しています。各演算には非常にシンプルなコマンドが用意されています。 Windows 11/10には、標準・プログラマー・関数電卓など各種モードを備えた「電卓」アプリが標準搭載されていますが、小数点を含まない基本的な計算を手軽にコマンドプロンプトで済ませたい方にとっては、この方法がとても便利です。 コマンドプロンプトで四則演算を実行する手順 まず、Windows