次のコードでは、プログラムの最後に 1 つprintf
を使用して 12 時間制の時刻を出力したいのですが、変数に格納されている値に応じて午前または午後を出力したいと考えていますam_pm
。
正しく覚えているかどうかはわかりませんが、文字を int (または浮動小数点数?) に格納できると読んだと思いました。もちろん、型エラーが発生しているので違法に思えます。
また、配列を使用してこれを行うことができることも読みましたが、配列についてはまだ学んでおらず、そのような問題のより簡単な代替手段があるかどうか疑問に思っていました.
printf
別の方法として、文字列の最後に単に「am」と入力する 1 つと「pm」と入力する 2 つの 's を単純に使用することを知っていますが、それは冗長に思えます。
#include <stdio.h>
int main(void) {
int hour, minutes, am_pm;
printf("Enter a 24-hour time:"); scanf("%d:%d", &hour, &minutes);
if (hour > 12)
{
hour = (hour - 12);
am_pm = "pm"; // ERROR
}
else
am_pm = "am"; // ERROR
printf("Equivalent 12-hour time: %.2d:%.2d%d", hour, minutes, am_pm);
} // end main
上記でやろうとしていることと同様のことをするにはどうすればよいですか? Python では、単純に print("equivalent time is:" + hour + minutes + am_pm) のようなことを行うことを知っています。