読者です 読者をやめる 読者になる 読者になる
【スポンサーリンク】

【C言語解説】 C言語練習 R022 - 点数の合計、最高、最低を表示する

こちらのサイト

C言語練習
http://www.geocities.jp/kenji_y0328/crenshu/

の問題を実際に解いていったので、「解説」という形でまとめていこうかと思っています。
ちなみに、こちらのサイトでは解答もありますが、自分の解答を元に解説していきます。

※作者様からの削除依頼がありましたらすぐに削除しますのでご報告頂けると幸いです。

カテゴリの「C言語練習」でまとめています。

【問題】

点数を入力し、合計、最高の点数、最低の点数を表示する。

【コード】

#include<stdio.h>
int main(){
    int i, tensu, heikin, goukei=0, max=0, min=999;
    
    for(i=1; i<=10; i++){
        printf("%d人目の点数=", i); scanf("%d", &tensu);
        goukei += tensu;
        
        if(tensu>max) max = tensu;
        if(tensu<min) min = tensu;
    }
    heikin = goukei/10;
    
    printf("\n合計=%d 平均=%d\n", goukei, heikin);
    printf("最高点数=%d 最低点数=%d\n", max, min);
    return 0;
}

【考え方】

  • int型の「i」「tensu」「heikin」「goukei」「max」「min」を宣言する。
  • 「max」には0、「min」には999を代入しておく。そうすることによって必ず最大値、最小値に代入されることになる。
  • for文で「i」を1から10まで回す(10回繰り返す)
  • for文の中では「i」を利用して「◯人目の点数」というように表示して、標準入力を行う。「tensu」は一時的に入力された値を代入するために用いる変数。
  • 「goukei」に「tensu」を加算代入する。
  • if文で比較する。

「tensu」が「max」より大きければ「max」に「tensu」を代入する。
「tensu」が「min」より小さければ「min」に「tensu」を代入する。

  • それを10回繰り返して、「heikin」に「goukei」を10で割った値を代入する。
  • 「goukei」「heikin」「max」「min」それぞれの値を標準出力処理で表示する。

【個人的な意見】

まず思ったのは「点数」→「tensu」、「合計」→「goukei」、「平均」→「heikin」なのに何故最大と最小は「max」、「min」なのだと。
全部英語で統一した方が良い気がしました。
そしてfor文の中の最後の2つのif文では、2つわざわざ書かず「else」を使ってもいいと思いました。


メリークリスマス!
クリぼっちの皆さん、楽しみましょう。

【スポンサーリンク】