关于#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<iostream>

using namespace std;

int main()
{
char f1,f2;
int h,m,s;
cin>>h>>f1>>m>>f2>>s;

int n;
cin>>n;
getchar();
if((s+n)<60)s=s+n;
else if((s+n)==60)
{
    m+=1;s=0;
    if(m==60)
       {h+=1;m=0;if(h>=24)h-=24;}
}
else {
       s=s+n-60;    
       m+=1;
       if(m==60)
        {h+=1;m=0;if(h>=24)h-=24;}
    }
printf("%2d:%2d:%2d",h,m,s);


    return 0;
}

%02d实现补零操作,这样就不会00只输出0 了

img

#include<iostream>
 
using namespace std;
 
int main()
{
char f1,f2;
int h,m,s;
cin>>h>>f1>>m>>f2>>s;
 
int n;
cin>>n;
getchar();
if((s+n)<60)s=s+n;
else if((s+n)==60)
{
    m+=1;s=0;
    if(m==60)
       {h+=1;m=0;if(h>=24)h-=24;}
}
else {
       s=s+n-60;    
       m+=1;
       if(m==60)
        {h+=1;m=0;if(h>=24)h-=24;}
    }
printf("%02d:%02d:%02d",h,m,s);
 
 
    return 0;
}
 

using namespace std;
int main()
{
    char f1,f2;
    int h,m,s;
    cin>>h>>f1>>m>>f2>>s;
    int n;
    cin>>n;
    getchar();
    s = s + n;
    m += (s - s%60) > 0, s %= 60;
    h += (m - m%60) > 0, m %= 60;
    h %= 24;
    printf("%02d:%02d:%02d",h,m,s);
    return 0;
}

img

这道题之前我写过,也出过一篇相关的文章,题主也可以去看看:
https://blog.csdn.net/qq_51646682/article/details/122702732
以下代码,供题主做思路参考

//编码及注释:Code_流苏
//定义头文件
#include<stdio.h>
#include<stdlib.h>
//主函数
int main()
{
    //定义h,m,s,n,a变量
    //h,m,s分别是 时 分 秒
    //n 是 需经过的秒数
    //a 是 中间变量 用于计算求值
    int h,m,s,n,a;
    //输入小时分钟秒
    printf("请输入时间:\n");
    scanf("%d:%d:%d",&h,&m,&s);
    //输入需经过的秒数n的值
    printf("请输入需要经过的秒数:\n");
    scanf("%d",&n);
    //计算经过n秒后的时 分 秒(h m s)
    a=3600*h+60*m+s+n;
    a=a%86400;
    h=(a-a%3600)/3600;
    a=a%3600;
    m=(a-a%60)/60;
    a=a%60;
    s=a;
    //输出结果
    printf("经过%d秒后的结果为:\n",n);
    printf("%02d:%02d:%02d",h,m,s);
    //返回0,代表程序执行结束
    return 0;
}


希望对题主有所帮助,可以的话,帮忙点个采纳!

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632