目次から探す
2重ループの応用例
2重ループは、プログラミングにおいて非常に便利な機能です。
ここでは、2重ループの応用例について紹介します。
行列の操作
行列は、数値の2次元配列として表現されます。
2重ループを使用することで、行列の要素を操作することができます。
例えば、2つの行列を足し合わせる場合、以下のようなコードを書くことができます。
#include <stdio.h>
#define ROWS 3
#define COLS 3
void addMatrix(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];
addMatrix(matrix1, matrix2, result);
printf("Result:\n");
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%d ", result[i][j]);
}
printf("\n");
}
return 0;
}
上記のコードでは、addMatrix
関数を定義し、2重ループを使用して2つの行列を足し合わせています。
結果はresult
配列に格納され、その後、結果を表示しています。
パターンの生成
2重ループを使用することで、さまざまなパターンを生成することができます。
例えば、以下のようなコードを書くことで、99の表を生成することができます。
#include <stdio.h>
int main() {
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
printf("%d x %d = %d\n", i, j, i * j);
}
printf("\n");
}
return 0;
}
上記のコードでは、2重ループを使用して、1から9までの数値を掛け合わせた99の表を生成しています。
データの集計
2重ループを使用することで、データの集計を行うことができます。
例えば、以下のようなコードを書くことで、配列内の要素の合計を計算することができます。
#include <stdio.h>
#define SIZE 5
int main() {
int numbers[SIZE] = {1, 2, 3, 4, 5};
int sum = 0;
for (int i = 0; i < SIZE; i++) {
sum += numbers[i];
}
printf("Sum: %d\n", sum);
return 0;
}
上記のコードでは、2重ループを使用せずに単純なループを使用していますが、同様の結果を得ることができます。
配列内の要素を順番に取り出し、合計に加算していくことで、要素の合計を計算しています。
以上が、2重ループの応用例の一部です。
2重ループは、プログラミングにおいて非常に重要な機能であり、様々な応用が可能です。
ぜひ、自分のプログラムにも2重ループを活用してみてください。
次のページ2重ループの注意点