这是我在解决一本书问题时提出的代码,我被要求编写一个程序,该程序以 12 小时格式输入并以 24 小时格式输出。
有效输入为例如下午 1:11、下午 1:11、下午 1:11、下午 1:11、下午 1:11、下午 1:11、下午 1:11、下午 1:11
这是代码:
#include<stdio.h>
int main (void)
{
int hr=0,min=0; char time;
scanf("%d : %d %c", &hr, &min, &time);
if(time =='p' || time == 'P' || time == 'PM' || time == 'pm' && hr >= 12)
{
hr +=12;
}
printf("The 24 hour format time is = %d : %d", hr, min);
printf("% Test result = c", test);
return 0;
}
在 if 条件下,我写道:
if(time =='p' || time == 'P' || time == 'PM' || time == 'pm' && hr >= 12)
据我所知,char类型只允许存储 1 个字符。那么,当我在晚上 9:11 给出这样的输入时,为什么这会起作用。在这种情况下它是如何工作的?
time == 'pm' || time == 'PM'
输出是:
The 24 hour format time is =21:11
编辑 1:
使用 GNU GCC 编译器。代码在单个文件中,而不是在项目中。