时间换算 c语言

本题要求编写程序,以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>

int main()
{
int hh,mm,ss;
int add;
scanf("%d:%d:%d",&hh,&mm,&ss);
scanf("%d",&add);

ss=ss+add;
if(ss>=60){
ss=ss-60;
mm++;
if(mm>=60){
mm=mm-60;
hh++;
if(hh>=24){
hh=hh-24;
}
}
}
printf("%d:%d:%d\n",hh,mm,ss);




}

追问

测试结果一分(满分15)

追答

你把测试截图发来看看

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-02-28
网上一位大神写的,感觉是目前见过写的最好的方法。
#include<stdio.h>
int main()
{
int hh, mm, ss;
scanf("%d:%d:%d",&hh,&mm,&ss);
int n;
scanf("%d",&n);
ss = ss + n;
mm += (ss - ss%60) > 0, ss %= 60;
hh += (mm - mm%60) > 0, mm %= 60;
hh %= 24;
printf("%02d:%02d:%02d",hh,mm,ss);
return 0;
}
第2个回答  2015-12-07
#include <stdio.h>
int main()
{
int hours, minutes, seconds;
int num;
scanf("%d:%d:%d", &hours, &minutes, &seconds);
scanf("%d", &num);
int quotient,remain;
quotient = (seconds + num) / 60;
seconds = (seconds + num) % 60;
remain = (quotient + minutes) / 60;
minutes = (quotient + minutes) % 60;
hours = (remain + hours) % 24;
printf("%d:%d:%d", hours, minutes, seconds);
return 0;
}
第3个回答  2015-12-07
int main(int argc, char *argv[]) 
{
int t,m,s,n;
scanf("%d:%d:%d",&t,&m,&s);
scanf("%d",&n);
int all;
all=t*60*60+m*60+s+n;
printf("\n%d:%d:%d",all/3600,(all%3600)/60,(all%3600)%60);
return 0;
}

本回答被网友采纳
相似回答