[C言語] forループを使った足し算の繰り返し方法

C言語でforループを使って足し算を繰り返す方法は、特定の範囲内の数値を順に加算する際に便利です。

基本的な構造はfor(初期化; 条件; 更新)で、初期化でループカウンタを設定し、条件が真の間ループを繰り返し、各繰り返し後に更新を行います。

例えば、1から10までの整数を合計する場合、ループカウンタを1から始め、10までインクリメントしながら合計変数に加算します。

この方法は、数値の合計や平均を求める際に広く使われます。

この記事でわかること
  • forループを使って1からNまでの整数を合計する方法
  • 配列の要素をforループで合計する手法
  • 負の数を含む範囲の合計を計算する方法
  • 奇数や偶数、特定の条件に基づく数値の合計の計算方法
  • 2次元配列の全ての要素を合計する方法

目次から探す

forループを使った足し算の実装

C言語におけるforループは、繰り返し処理を行うための基本的な構造です。

ここでは、forループを使って足し算を繰り返す方法をいくつかの例を通じて解説します。

1からNまでの合計を求める

1からNまでの整数を合計するプログラムを作成します。

Nはユーザーからの入力とします。

#include <stdio.h>
int main() {
    int N, sum = 0;
    printf("Nの値を入力してください: ");
    scanf("%d", &N);
    // 1からNまでの合計を計算
    for (int i = 1; i <= N; i++) {
        sum += i;
    }
    printf("1から%dまでの合計は%dです。\n", N, sum);
    return 0;
}
Nの値を入力してください: 5
1から5までの合計は15です。

このプログラムでは、ユーザーが入力したNまでの整数をforループで繰り返し足し合わせ、合計を出力します。

配列の要素を合計する

次に、配列内の要素を合計する方法を示します。

配列の要素数は固定とし、サンプルデータを使用します。

#include <stdio.h>
int main() {
    int numbers[] = {2, 4, 6, 8, 10};
    int sum = 0;
    int length = sizeof(numbers) / sizeof(numbers[0]);
    // 配列の要素を合計
    for (int i = 0; i < length; i++) {
        sum += numbers[i];
    }
    printf("配列の要素の合計は%dです。\n", sum);
    return 0;
}
配列の要素の合計は30です。

このプログラムでは、配列numbersの全ての要素をforループで合計し、その結果を出力します。

負の数を含む範囲の合計

負の数を含む範囲の合計を求めるプログラムを作成します。

ここでは、-5から5までの合計を計算します。

#include <stdio.h>
int main() {
    int sum = 0;
    // -5から5までの合計を計算
    for (int i = -5; i <= 5; i++) {
        sum += i;
    }
    printf("-5から5までの合計は%dです。\n", sum);
    return 0;
}
-5から5までの合計は0です。

このプログラムでは、負の数を含む範囲である-5から5までの整数をforループで合計し、その結果を出力します。

合計が0になることを確認できます。

応用例

forループを使った足し算の基本を理解したところで、さらに応用的な例を見ていきましょう。

ここでは、特定の条件に基づいた合計の計算方法を紹介します。

奇数または偶数の合計を求める

1からNまでの整数の中で、奇数または偶数のみを合計するプログラムを作成します。

ここでは、偶数の合計を求める例を示します。

#include <stdio.h>
int main() {
    int N, sum = 0;
    printf("Nの値を入力してください: ");
    scanf("%d", &N);
    // 偶数の合計を計算
    for (int i = 1; i <= N; i++) {
        if (i % 2 == 0) {
            sum += i;
        }
    }
    printf("1から%dまでの偶数の合計は%dです。\n", N, sum);
    return 0;
}
Nの値を入力してください: 10
1から10までの偶数の合計は30です。

このプログラムでは、1からNまでの整数の中で偶数のみをforループで合計し、その結果を出力します。

条件付きで特定の数値を合計する

特定の条件に基づいて数値を合計する例を示します。

ここでは、3の倍数のみを合計します。

#include <stdio.h>
int main() {
    int N, sum = 0;
    printf("Nの値を入力してください: ");
    scanf("%d", &N);
    // 3の倍数の合計を計算
    for (int i = 1; i <= N; i++) {
        if (i % 3 == 0) {
            sum += i;
        }
    }
    printf("1から%dまでの3の倍数の合計は%dです。\n", N, sum);
    return 0;
}
Nの値を入力してください: 10
1から10までの3の倍数の合計は18です。

このプログラムでは、1からNまでの整数の中で3の倍数のみをforループで合計し、その結果を出力します。

2次元配列の要素を合計する

2次元配列の全ての要素を合計する方法を示します。

ここでは、3×3の2次元配列を使用します。

#include <stdio.h>
int main() {
    int matrix[3][3] = {
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9}
    };
    int sum = 0;
    // 2次元配列の要素を合計
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            sum += matrix[i][j];
        }
    }
    printf("2次元配列の要素の合計は%dです。\n", sum);
    return 0;
}
2次元配列の要素の合計は45です。

このプログラムでは、2次元配列matrixの全ての要素をforループで合計し、その結果を出力します。

内側のforループで各行の要素を、外側のforループで各行を処理しています。

よくある質問

forループとwhileループの違いは?

forループとwhileループはどちらも繰り返し処理を行うための構造ですが、使い方や適用場面に違いがあります。

  • forループは、繰り返しの回数があらかじめ決まっている場合に適しています。

初期化、条件判定、更新処理を一行で記述できるため、コードが簡潔になります。

  • 例:for (int i = 0; i < 10; i++) { /* 処理 */ }
  • whileループは、繰り返しの回数が不定で、特定の条件が満たされるまで繰り返したい場合に適しています。

条件が真である限り、ループが続きます。

  • 例:while (condition) { /* 処理 */ }

なぜforループを使うのか?

forループを使う理由は以下の通りです。

  • 可読性: 初期化、条件判定、更新処理を一行で記述できるため、ループの構造が明確で読みやすい。
  • 簡潔さ: 繰り返しの回数が決まっている場合、forループはコードを簡潔に記述できる。
  • 管理のしやすさ: ループの制御変数をforループ内で宣言することで、ループ外での誤用を防ぐことができる。

forループの中で変数を宣言しても良いのか?

forループの中で変数を宣言することは可能であり、むしろ推奨される場合があります。

ループ内で宣言された変数は、そのループのスコープ内でのみ有効であり、ループが終了すると自動的に破棄されます。

これにより、変数の誤用を防ぎ、コードの安全性を高めることができます。

  • 例:for (int i = 0; i < 10; i++) { /* 処理 */ }

このように、forループ内で変数を宣言することで、ループの制御変数がループ外で使用されることを防ぎ、コードの意図を明確にすることができます。

まとめ

この記事では、C言語におけるforループを使った足し算の基本的な実装方法から応用例までを詳しく解説しました。

forループを活用することで、繰り返し処理を効率的に行い、特定の条件に基づいた合計を計算することが可能です。

これを機に、実際のプログラムでforループを活用し、さまざまな計算やデータ処理に挑戦してみてください。

  • URLをコピーしました!
目次から探す