编写程序,实现从键盘输入一个时间(HH:MM:SS),程序输出该时间一秒后的时间。显示格式HH:MM:SS. 程序需要

c语言

设计思想:

    键盘输入一个时间HH:MM:SS

    在SS基础上,自加1

    如果第二步需要进位,那么在MM基础上自加1

    如果第三步需要进位,那么在HH基础上自加1

    如果第四步需要进位,那么整体回归到00:00:00

代码如下:

#include<stdio.h>
#include<string.h>
int main() {
        int hh,mm,ss;
        scanf("%d:%d:%d",&hh,&mm,&ss);//键盘输入一个时间HH:MM:SS

        ss++;//秒数自加1
        if(60==ss){//60秒,需要进位
                ss=0;//秒数清0
                mm++;//分钟数自加1
                if(60==mm){//60分,需要进位
                        mm=0;//分钟数清0
                        hh++;//小时数自加1
                        if(24==hh){//24时,需要进位
                                hh=0;//小时数清0
                        }
                }
        }
        printf("%02d:%02d:%02d\n",hh,mm,ss);//按规定格式输出时分秒
        return 0;
}

运行结果

23:59:59
00:00:00

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-10-05
实现从键盘输入时间,然后输出+1后的时间,比如23:59:59

  1 #include <stdio.h>
  2 
  3 int main()
  4 {
  5         int HH, MM, SS;
  6         printf("Input HH:MM:SS\n");
  7         scanf("%d:%d:%d",&HH,&MM,&SS);
  8         SS++;
  9         if (SS == 60){
 10                 SS = 0;
 11                 MM ++;
 12         }
 13         if (MM == 60){
 14                 MM = 0;
 15                 HH ++;
 16         }
 17         if (HH == 24){
 18                 HH = 0;
 19                 MM = 0;
 20                 SS = 0;
 21         }
 22         printf("Now is %d:%d:%d\n",HH,MM,SS);
 23 }

没有做太多的容错判断,只是单纯的对应了一下功能。大概测试了一下,功能正常。

第2个回答  2017-09-19
关于读入:你可以用“:”作为输入的判断方式
关于输出:你可以判断数字考虑是否前面加0
关于判断:
判断SS是否为59,否SS加一,是归零SS
判断MM是否为59,否MM加1,是归零MM
判断HH是否为23,否HH加1,是归零
第3个回答  2010-12-28
你也要说明具体用的是哪种语言啊。

一般是做字符串处理,取到以冒号分隔的三段字符(hh、mm、ss)
ss=00~58时,ss自加一输出即可。
ss=59时,ss设为00,mm加一,输出即可。

同样继续判断mm若是需要进位则hh加一,hh=23时需要进位则hh=00。

另一种思路是把收到的字符串转换为Datetime对象,然后进一秒后再按照“HH:MM:SS”的格式输出,那就要看你所用的程序是不是支持Datetime类还有相关的方法了。
第4个回答  2017-09-19
#include <stdio.h>
int main()
{
//定义时分秒变量
   int HH;
   int MM;
   int SS;
   //输入变量
   printf("请输入时间(HH:MM:SS)\n");
   scanf("%d:%d:%d",&HH,&MM,&SS);
   printf("时间:\n")
   printf("%d:%d:%d",HH,MM,SS+1);
   return 0;
}

相似回答