if文とelse if文を使って24時間制を12時間制に変換するCプログラムの作成方法
問題
C言語を使用して、24時間表記(例:22:37)で入力された時刻を、AM/PMが付いた12時間表記(例:10:37 PM)に変換するには、どのようにプログラムを作成すればよいのでしょうか?
解決策
プログラムの実行時にユーザーから時刻の値を入力として受け取り、条件分岐(if文とelse if文)を用いて24時間表記から12時間表記へ変換します。ポイントは、時(hour)の値に応じて以下のように場合分けすることです。
- 時が「0」の場合 → 午前0時なので「12:xx AM」と表示する
- 時が「1〜11」の場合 → そのまま「x:xx AM」と表示する
- 時が「12」の場合 → 正午なのでそのまま「12:xx PM」と表示する
- 時が「13〜23」の場合 → 12で割った余り(hour % 12)を計算して「x:xx PM」と表示する
アルゴリズム
開始: ステップ1:24時間形式で時刻を入力する ステップ2:条件を判定する i. hour == 0 の場合 min を出力(12:xx AM として表示) ii. そうでなく hour < 12 の場合 hour と min をそのまま出力 iii. そうでなく hour == 12 の場合 hour と min をそのまま出力 iv. それ以外の場合 (hour % 12) と min を出力 終了:
プログラム
#include<stdio.h>
int main(){
int hr,min;
printf("enter the time in 24 hour format:");
scanf("%d:%d",&hr,&min);
printf("The 12 hr format time:");
if(hr==0){
printf("12:%.2d AM\n",min);
}
else if(hr<12){
printf("%d:%.2d AM\n",hr,min);
}
else if(hr==12){
printf("%d:%.2d PM\n",hr,min);
}
else
printf("%d:%.2d PM\n",hr % 12,min);
return 0;
}実行結果
enter the time in 24 hour format:22:37 The 12 hr format time:10:37 PM
プログラムの解説
このプログラムでは、まず scanf("%d:%d", &hr, &min); によって「22:37」のようなコロン区切りの形式で時刻を読み込みます。その後、時(hr)の値に応じて4つのケースに分岐しています。
書式指定子 %.2d は、分の値を必ず2桁で表示するために使用しています。たとえば「10:5 PM」ではなく「10:05 PM」と、先頭に0を付けた正しい時刻表示になります。
また、午後の時刻(13時〜23時)については、剰余演算子 % を使って hr % 12 を計算することで、24時間制の時を12時間制の数値に変換しています。たとえば 22 % 12 = 10 となり、「10:37 PM」と表示されます。
-
C言語で実装するFCFSスケジューリング:平均待ち時間とターンアラウンド時間の計算方法
n個のプロセスP1、P2、P3、…、Pnとそれぞれのバーストタイム(CPU実行時間)が与えられたとき、FCFS(First Come, First Served)CPUスケジューリングアルゴリズムを用いて平均待ち時間と平均ターンアラウンド時間を求めるのが本記事のテーマです。 待ち時間とターンアラウンド時間とは? ターンアラウンド時間:プロセスの投入から完了までの時間間隔です。ターンアラウンド時間 = プロセスの完了時刻 − プロセスの投入時刻 待ち時間:ターンアラウンド時間からバーストタイムを差し引いた時間です。待ち時間 = ターンアラウンド時間 − バーストタイム FCFSスケジューリン
-
【初心者向け】長方形の面積と外周を求めるC言語プログラムの書き方
長方形の「長さ」と「幅」が与えられたとき、その面積と外周(周囲の長さ)を計算する方法を、C言語のサンプルコード付きでわかりやすく解説します。 長方形とは? 長方形とは、4つの辺と4つの直角(90度)を持つ2次元の図形です。長方形では、隣り合う辺の長さは異なりますが、向かい合う辺どうしは必ず同じ長さになります。また、2本の対角線も互いに等しい長さを持ちます。 下の図は長方形を模式的に表したものです。 ここで、Aは長方形の幅(breadth)、Bは長さ(length)を表しています。 面積と外周の計算式 面積の公式 長方形の面積は、次の式で求められます。 面積 = 長さ × 幅 外周の公式