【スポンサーリンク】

【C言語解説】 C言語練習 R018 - 秒数の変換

こちらのサイト

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

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

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

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

【問題】

秒数で表される時間を入力し、時間、分、秒に変換し表示する。

【コード】

#include<stdio.h>
main(){
    int byou, h, m, s;
    
    printf("秒数を入力して下さい="); scanf("%d", &byou);
    m = byou/60;
    s = byou%60;
    h = m/60;
    m = m%60;
    
    printf("%d秒 = %d時間 %d分 %d秒", byou, h, m, s);
    return 0;
}

【考え方】

  • int型の「byou」「h」「m」「s」を宣言する。
  • 標準入力処理で「byou」に秒数を入力する。
  • 「m」は「Minute(分)」なので、秒数を60で割って算出された「商」を「m」に代入する。
  • 「s」は「Second(秒)」なので、秒数を60で割って算出された「余り」を「s」に代入する。
  • 「h」は「Hour(時)」なので、分数を60で割って算出された「商」を「h」に代入する。
  • そうすると「m」の値がおかしくな( m に含まれる分数が増え)るので、分数を60で割って算出された「余り」を「m」に代入する。
  • あとは標準出力するだけ。

【個人的な意見】

こういった問題では、実行したら実際に入力して、その入力値に適宜対応するような処理を作らなければなりません。
使うのは人間なのでどんな値を入力してくるのか分かりません。ですから、実際に自分が適当な値を設定して、それでちゃんと実行するのか確認しながら行っていくことが重要になってくると思います。

なので、自分でも簡単に計算できるような値、かつ、条件範囲内の値複数用意して実行テストを行うと良いでしょう。
今回の問題は「 1 ≦ a ≦ 50 」のような条件がありませんが、条件が指定されるような問題、課題もあるので気をつけましょう。

【スポンサーリンク】