練習課題:平均点を求める(改良版2)

 ここでは、以前作成した平均点を求めるプログラムを改良します。以前は、下のようなプログラムを作成しました。

#include <stdio.h>

int main(int argc, const char * argv[])
{
    
    // insert code here...
    int score[5];       // 5人の点数を入れる配列
    int sum;            // 合計点
    int average;        // 平均点
    
    // 各点数を入れる
    score[0] = 75;
    score[1] = 80;
    score[2] = 65;
    score[3] = 60;
    score[4] = 70;
    
    // 合計点の初期値 = 0点
    sum = 0;
    
    // 各点数を全て足して合計点を求める
    for(int i = 0; i < 5; i++) {
        sum += score[i];
    }
    
    // 平均点を求める
    average = sum / 5;
    
    // 平均点を表示する
    printf("平均点は%d点です。", average);
    
    return 0;
}

 課題:平均点を求めるプログラムを書いて下さい。プログラムの実行時に、5人の点数を指定します。5人の点はそれぞれ「75点、80点、65点、60点、70点」とします。最後に平均点をprintf関数で表示します。

 ...

 では、回答の一例を掲載します。

#include <stdio.h>
#include <stdlib.h>

int main(int argc, const char * argv[])
{
    
    // insert code here...
    int score;          // 得点
    int sum;            // 合計点
    int average;        // 平均点
    
    // 合計点の初期値 = 0点
    sum = 0;
    
    // 各点数を全て足して合計点を求める
    for(int i = 1; i < argc; i++) {
        // 引数argv[i]はchar型なのでatoi関数でint型に変換する
        score = atoi(argv[i]);
        
        sum += score;
    }
    
    // 平均点を求める
    average = sum / 5;
    
    // 平均点を表示する
    printf("平均点は%d点です。\n", average);
    
    return 0;
}

 実行の際は、コマンドプロンプト等のコマンドラインツールから、

./(実行ファイル名) 75 80 65 60 70

 このように入力して下さい。そうして実行すると、以下のような結果が表示されることを確認して下さい。

平均点は70点です。

 このように、標準ライブラリ関数をincludeすることで、作成できるプログラムの幅が広がります。

■スポンサーリンク

このページの先頭へ