方法一
注意输出方式
printf("%02d:%02d:%02d",hour,minute,second);
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
scanf("%d",&n);
int hour = 0,minute =0,second = 0;
for(int i=0; i<n; i++)
{
second++;
if(second == 60)
{
second = 0;
minute++;
if(minute == 60)
{
minute = 0;
hour++;
}
if(hour==24)
hour = 0;
}
}
printf("%02d:%02d:%02d",hour,minute,second);
return 0;
}
方法二
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
scanf("%d",&n);
int hour = n / 3600;
int minute = n % 3600 / 60;
int second = n % 60;
printf("%02d:%02d:%02d",hour,minute,second);
return 0;
}
PAT 7-8 时间换算(15 分)
本题要求编写程序,以hh:mm:ss的格式输出某给定时间再过n秒后的时间值(超过23:59:59就从0点开始计时)。
输入格式:
输入在第一行中以hh:mm:ss的格式给出起始时间,第二行给出整秒数n(<60)。
输出格式:
输出在一行中给出hh:mm:ss格式的结果时间。
输入样例:
11:59:40
30
输出样例:
12:00:10
#include <stdio.h>
#include <stdlib.h>
int main()
{
int hh = 0,mm =0,ss = 0;
int add = 0;
scanf("%d:%d:%d",&hh,&mm,&ss);
scanf("%d",&add);
int hour = 0,minute = 0,second = 0;
int n = hh*3600 + mm*60 + ss + add;
for(int i=0; i<n; i++)
{
second++;
if(second == 60)
{
second = 0;
minute++;
if(minute == 60)
{
minute = 0;
hour++;
}
if(hour==24)
hour = 0;
}
}
printf("%02d:%02d:%02d",hour,minute,second);
return 0;
}
或者用上述方法二
网友评论