C言語課題12 パート2

記事
IT・テクノロジー
課題
数値を繰り返して入力し、0が入力されたら入力を止め、平均値を表示せよ。


回答
#include <stdio.h>

int main(void)
{
    int a;
    int total;
    int count;

    total = 0;
    count = 0;

    do {

        printf("数字を入力して下さい\r\n> ");
        scanf("%d", &a);

        total += a;
        count++;

    } while( a!=0 );

    count--;
    if (count == 0) {
        printf("データがありません\r\n");
    }
    else {
        printf("平均は、%d\r\n", total / count);
    }
}

解説
課題2の別バージョンの回答例です。
do-while文を使ってみました。
これで if(a==0)を書かなくて良くなります。
つまり判定が一つ減ります。
ただし、do-whileを抜けた後に count をディクリメントする必要が出てきます。これを美しいと思うか醜いと思うかは人それぞれですかね。


サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す