C语言作业,求高手帮助!!!!!从键盘输入24小时制的某个时间,计算并输出其前一秒和后一秒的时间。

【输入形式】
从键盘输入24小时制的某个时间,格式为:hh:mm:ss。
【输出形式】
输出2行,第1行为输入时间的前1秒时间,第2行为输入时间的后1秒时间,格式为:hh:mm:ss。
【样例输入1】
09:59:59
【样例输出1】
09:59:58
10:00:00
【样例输入2】
00:00:00
【样例输出2】
23:59:59
00:00:01

第1个回答  推荐于2020-12-24
#include <stdio.h>
void main()
{
char time[8];
int h=0,m=0,s=0;

scanf("%s",time);

h=(time[0]-'0') * 10 + time[1]-'0';
m=(time[3]-'0') * 10 + time[4]-'0';
s=(time[6]-'0') * 10 + time[7]-'0';

int h1,h2,m1,m2,s1,s2;
int flag=0;

s1 = (s+60-1)%60;
if(s-1<0)
{
flag=1;
}

m1 = (m+60-flag)%60;

flag=0;
if(m-1<0)
{
flag=1;
}
h1 = (h+24-flag)%24;

printf("%02d:%02d:%02d\n",h1,m1,s1);

s2 = (s+1)%60;
flag =0;
if(s+1>59)
{
flag=1;
}

m2 = (m+flag)%60;

flag=0;
if(m+1>59)
{
flag=1;
}
h2 = (h+flag)%24;

printf("%02d:%02d:%02d",h2,m2,s2);

}本回答被提问者采纳
第2个回答  2012-04-12
#include <stdio.h>
void main()
{
char time[8];
int h=0,m=0,s=0;

scanf("%s",time);

h=(time[0]-'0') * 10 + time[1]-'0';
m=(time[3]-'0') * 10 + time[4]-'0';
s=(time[6]-'0') * 10 + time[7]-'0';

int h1,h2,m1,m2,s1,s2;
int flag=0;

s1 = (s+60-1)%60;
if(s-1<0)
{
flag=1;
}

m1 = (m+60-flag)%60;

flag=0;
if(m-1<0)
{
flag=1;
}
h1 = (h+24-flag)%24;

printf("%02d:%02d:%02d\n",h1,m1,s1);

s2 = (s+1)%60;
flag =0;
if(s+1>59)
{
flag=1;
}

m2 = (m+flag)%60;

flag=0;
if(m+1>59)
{
flag=1;
}
h2 = (h+flag)%24;

printf("%02d:%02d
相似回答