繰り返し処理

[C言語] for文で複数の数値の合計値を求める書き方

C言語で複数の数値の合計を求めるには、for文を使用するのが一般的です。

まず、合計を格納するための変数を初期化します。

次に、for文を使って数値の配列やリストを反復処理し、各要素を合計変数に加算します。

この方法は、数値の数が多い場合でも効率的に合計を計算することができます。

また、for文の条件式や初期化部分を適切に設定することで、特定の範囲の数値のみを合計することも可能です。

for文を使った合計値の計算

C言語において、for文を使用して複数の数値の合計を求める方法は非常に基本的でありながら重要なテクニックです。

ここでは、配列内の数値を合計する方法、ユーザーからの入力を合計する方法、そしてループ内での合計計算の際の注意点について解説します。

配列内の数値を合計する方法

配列内の数値を合計するには、for文を使って配列の各要素を順番にアクセスし、合計変数に加算していきます。

以下にサンプルコードを示します。

#include <stdio.h>
int main() {
    // 数値の配列を定義
    int numbers[] = {1, 2, 3, 4, 5};
    int sum = 0; // 合計を格納する変数
    int size = sizeof(numbers) / sizeof(numbers[0]); // 配列のサイズを計算
    // for文を使って配列の各要素を合計
    for (int i = 0; i < size; i++) {
        sum += numbers[i];
    }
    // 合計を出力
    printf("合計値は: %d\n", sum);
    return 0;
}
合計値は: 15

このプログラムでは、配列numbersの各要素をfor文で順にアクセスし、sumに加算しています。

最終的に、配列内の全ての数値の合計が出力されます。

ユーザー入力による数値の合計

ユーザーから入力された数値を合計する場合も、for文を使用します。

以下のサンプルコードでは、ユーザーに数値を入力してもらい、その合計を計算します。

#include <stdio.h>
int main() {
    int n, sum = 0;
    
    // ユーザーに数値の個数を入力してもらう
    printf("合計する数値の個数を入力してください: ");
    scanf("%d", &n);
    // ユーザーからの入力を受け取り、合計を計算
    for (int i = 0; i < n; i++) {
        int number;
        printf("数値を入力してください: ");
        scanf("%d", &number);
        sum += number;
    }
    // 合計を出力
    printf("合計値は: %d\n", sum);
    return 0;
}
合計する数値の個数を入力してください: 3
数値を入力してください: 10
数値を入力してください: 20
数値を入力してください: 30
合計値は: 60

このプログラムでは、最初にユーザーに合計する数値の個数を入力してもらい、その後、各数値を入力してもらって合計を計算しています。

ループ内での合計計算の注意点

for文を使って合計を計算する際には、以下の点に注意が必要です。

  • 初期化: 合計を格納する変数は必ず0で初期化してください。

初期化されていない変数を使用すると、予期しない結果になることがあります。

  • 配列の範囲: 配列を扱う際は、必ず配列の範囲内でループを回すようにしてください。

範囲外のアクセスは未定義動作を引き起こします。

  • 入力の検証: ユーザー入力を扱う場合は、入力が正しい形式であるかを確認することが重要です。

入力エラーを防ぐために、入力の検証を行うことをお勧めします。

これらの注意点を守ることで、for文を使った合計計算を安全かつ正確に行うことができます。

応用例

for文を使った合計計算は、基本的な1次元配列だけでなく、さまざまな応用が可能です。

ここでは、2次元配列の合計値を求める方法、条件付きで数値を合計する方法、そして合計値と平均値を同時に求める方法について解説します。

2次元配列の合計値を求める

2次元配列の合計値を求めるには、ネストされたfor文を使用します。

以下にサンプルコードを示します。

#include <stdio.h>
int main() {
    // 2次元配列を定義
    int matrix[3][3] = {
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9}
    };
    int sum = 0; // 合計を格納する変数
    // ネストされたfor文を使って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文で順にアクセスし、sumに加算しています。

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

特定の条件を満たす数値のみを合計することも可能です。

以下のサンプルコードでは、偶数のみを合計しています。

#include <stdio.h>
int main() {
    int numbers[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    int sum = 0;
    int size = sizeof(numbers) / sizeof(numbers[0]);
    // 偶数のみを合計
    for (int i = 0; i < size; i++) {
        if (numbers[i] % 2 == 0) {
            sum += numbers[i];
        }
    }
    // 合計を出力
    printf("偶数の合計値は: %d\n", sum);
    return 0;
}
偶数の合計値は: 30

このプログラムでは、配列numbersの中から偶数のみを選び出し、合計を計算しています。

合計値と平均値を同時に求める

合計値と平均値を同時に求めることもできます。

以下のサンプルコードでは、合計値と平均値を計算しています。

#include <stdio.h>
int main() {
    int numbers[] = {10, 20, 30, 40, 50};
    int sum = 0;
    int size = sizeof(numbers) / sizeof(numbers[0]);
    // 合計を計算
    for (int i = 0; i < size; i++) {
        sum += numbers[i];
    }
    // 平均を計算
    double average = (double)sum / size;
    // 合計と平均を出力
    printf("合計値は: %d\n", sum);
    printf("平均値は: %.2f\n", average);
    return 0;
}
合計値は: 150
平均値は: 30.00

このプログラムでは、配列numbersの合計を計算し、その合計を要素数で割ることで平均値を求めています。

合計値と平均値を同時に出力することで、データの全体的な傾向を把握することができます。

まとめ

for文を使った合計値の計算は、C言語プログラミングの基本的なテクニックです。

配列やユーザー入力からの合計計算、条件付き合計、2次元配列の合計など、さまざまな応用が可能です。

この記事を参考に、実際のプログラムでfor文を活用し、効率的な合計計算を試してみてください。

関連記事

Back to top button