1. 程式人生 > >C語言學習記錄(7)時間格式轉換

C語言學習記錄(7)時間格式轉換

C語言學習記錄

學習OJ上的C語言題

時間格式轉換

題目描述 編寫一個程式,要求使用者輸入24小時制的時間,然後按照12小時制的格式顯示出來。 提示:

hours == 0時,顯示12:MM AM hours < 12時,顯示HH:MM AM hours == 12時,顯示HH:MM PM hours > 12時,顯示hours-12:MM PM

輸入描述 在一行中輸入24小時制的時間。例如:21:11

輸出描述 按照12小時制的格式顯示輸入的時間。例如:9:11 PM

輸入樣例 21:11 輸出樣例 9:11 PM

解題:

#include<stdio.h>

int main
() { int x,y,m,n,i,k,max,min,a,b; scanf("%d:%d",&x,&y); if(x>=0&&x<24&&y>=0&&y<60) { if(x==0) { printf("12:%d AM",y); } else if(x<12) { printf("%d:%d AM",x,y); } else if(x==12) { printf(
"%d:%d PM",x,y); } else { printf("%d:%d PM",x-12,y); } } return 0; }

輸出···嗯···沒問題,好,提交!<答案錯誤!> 納尼?! 啥也沒問題啊! 搗鼓了半天,發現分鐘要補0,你題目也沒說啊?!我怎麼知道要不要加?萬一多此一舉呢?

正確程式碼:

#include<stdio.h>

int main()
{
	int x,y,m,n,i,k,max,min,a,b;
	scanf("%d:%d",&x,&y);
	if(x>=
0&&x<24&&y>=0&&y<60) { if(x==0) { printf("12:%02d AM",y); } else if(x<12) { printf("%d:%02d AM",x,y); } else if(x==12) { printf("%d:%02d PM",x,y); } else { printf("%d:%02d PM",x-12,y); } } return 0; }