【发布时间】:2012-12-05 10:11:53
【问题描述】:
在下面的代码中,我只想在程序末尾使用一个printf 来打印 12 小时时间,但我希望它打印 am 或 pm,具体取决于存储在变量 @987654322 中的哪个@。
我以为我读到我可以将字符存储在 int(或浮点数?)中,但我不确定我是否记错了。当然,这似乎是非法的,因为我遇到了类型错误。
我还读到我可以使用数组来执行此操作,但我还没有了解数组,我想知道是否有更简单的替代方法来解决此类问题。
我知道另一种方法是简单地使用两个printf,一个我简单地输入“am”,一个我简单地在字符串末尾输入“pm”,但这对我来说似乎是多余的。
#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)
【问题讨论】:
-
哇,谢谢大家的回答,他们都做得很好。 Ian Goldby 和 tsurko,你们的特别聪明。我希望我能选择你所有的作为答案。
标签: c string variables printf variable-assignment