描述 给定一个t,将t秒转化为HH:MM:SS的形式,表示HH小时MM分钟SS秒。HH,MM,SS均是两位数,如果小于10用0补到两位。
输入
输入描述: 第一行一个数T(1<=T<=100,000),表示数据组数。后面每组数据读入一个数t,0<=t<24*60*60。 输入样例: 2 0 86399
输出
输出描述: 每组数据一行,HH:MM:SS。 输出样例: 00:00:00 23:59:59
提示
HINT:时间限制:1.0s 内存限制:512.0MB
来源
蓝桥杯练习系统 ID: 132 原题链接: http://lx.lanqiao.cn/problem.page?gpid=T132
注意:1,数组要足够大,int装不下,用long long;
? ? ? ? ? ?2,小时--用秒数/3600? ? ? ? ? 分钟--(总秒数-hour*3600)/60? ? ?秒数--总-小时*3600-分钟*60? ? ? ? ? ? 3,1、%d就是普通的输出
? ? ? ? ? ? ? ?2、%?10d是将数字按宽度为5,采用右对齐方式输出,若数据位数不到10位,则左边补? ? ? ? ? ? ? ? ? ? ? ?空??格。(%2d时待打印整数3位数字,字段宽度自动扩大以符合整数长度 ? ? ? ? ? ? ? ?3、%?05d,和%?5d差不多,只不过左边补0 ? ? ? ? ? ? ? ?4、%.5d从执行效果来看,和%?05d一样 ? ? ? ? ? ? ? ?5、%-10d与%10d的输出结果类似,只是打印的数字位于字段的左侧
#include<stdio.h>
int main(){
int n,i,h,m,s;
long long a[10000];
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%lld",&a[i]);
}
for(i=1;i<=n;i++){
h=a[i]/3600;
m=(a[i]-h*3600)/60;
s=a[i]-h*3600-m*60;
printf("%02d:%02d:%02d\n",h,m,s);
}
return 0;
}
|