【C言語】0が入力されるまで値を入力して平均値を求める方法

この記事ではC言語を使用して、0が入力されるまで配列に入力された値を保存し、最後に平均値を求めるプログラムの作成方法について解説します。

このプログラムは初心者でも理解しやすく、基本的な構文とロジックを学ぶのに適したものです。是非参考にしてください。

目次

0が入力されるまで繰り返す処理の実装方法

0が入力されるまで繰り返す処理を実装するには、while文を使用します。while文は指定した条件式が真の間、繰り返し処理を行います。

以下は、0が入力されるまでユーザーからの入力値を配列に保存するプログラム例です。

#include <stdio.h>

int main() {
    int i = 0;
    int input;
    int array[100];

    while (1) {
        printf("数値を入力してください(終了する場合は0): ");
        scanf("%d", &input);

        if (input == 0) {
            break; // 入力値が0ならループから抜ける
        }

        array[i] = input;
        i++;
    }

    return 0;
}

このプログラムでは、無限ループになるように条件式をwhile(1)とし、ユーザーからの入力値がif(input == 0)で判断された場合にbreak文でループから抜けます。

また、配列array[]に順次格納していきます。

以上のようにwhile文を用いて繰り返し処理を作成することで、特定の条件までプログラムが動作し続けるような機能やアルゴリズム等も実現可能です。

平均値を求める

平均値を求めるには、配列に格納された数値の合計を求めて、その合計を要素数で割る必要があります。

以下は、0が入力されるまで繰り返し入力された数値の平均値を求めるプログラム例です。

#include <stdio.h>

int main() {
    int i, num;
    int sum = 0;
    int count = 0;

    while (1) {
        printf("数字を入力してください(0で終了): ");
        scanf("%d", &num);

        if (num == 0) {
            break;
        }

        sum += num; // 入力した数字の合計
        count++; // 入力した数字の数
    }

    if (count == 0) { // 数字が一つも入力されなかった場合
        printf("数字が一つも入力されませんでした。\n");
    } else { // 数字が一つ以上入力された場合
        double average = (double)sum / count; // 平均値

        printf("平均値は%.2fです。\n", average);
    }

    return 0;
}

このプログラムでは、while文とbreak文を使用して、ユーザーからの入力が「0」になるまで繰り返し処理します。

また、変数sumcountにそれぞれユーザーから受け取った数字の和と入力数をカウントすることで、最後に平均値を算出することが可能です。

目次