黑马程序员技术交流社区

标题: 求解一道题 [打印本页]

作者: Akrios    时间: 2015-4-16 21:55
标题: 求解一道题
输入一个时间,输出这个时间后的下一秒
例如:
输入:  23:59:59     输出: 00:00:00
输入:  12:34:23     输出: 12:34:24


怎么都写不对 用了3个FOR循环 总是23:59:60
作者: 舒少勇    时间: 2015-4-16 23:10
楼上的 思维挺好的 但是方法不正确 结果不正确
作者: 365616804    时间: 2015-4-16 23:11
你这样能用c语言做么
作者: 37°天黑    时间: 2015-4-16 23:15
  1. //
  2. //  main.c
  3. //  时钟问题
  4. //  输入一个时钟数,输出下一秒的时间

  5. #include <stdio.h>

  6. int main(int argc, const char * argv[]) {
  7.    
  8.     int hour,minute,second;
  9.    
  10.     printf("请输入一个时间,以冒号隔开:");
  11.    
  12.     scanf("%d:%d:%d",&hour,&minute,&second);
  13.    
  14.     if (second == 59) {
  15.    
  16.         second = 0;
  17.         
  18.         minute++;
  19.         
  20.         if (minute == 60) {
  21.             
  22.             minute = 0;
  23.             
  24.             hour++;

  25.             if (hour == 24) {
  26.                
  27.                 hour = 0;
  28.             }
  29.         }
  30.     }
  31.     else{
  32.         
  33.         second++;
  34.     }

  35.    printf("%02d:%02d:%02d\n",hour,minute,second);
  36.    
  37.     return 0;
  38. }
  39. 这个如果用for循环做的话,我是想不出来,但是我用if的嵌套格式做出来了,楼上发的那个我感觉可以实现,但是在运行的时候输入23:59:59会输出24:61:0 。希望可以帮到你!

复制代码

作者: Ios_bawenlong    时间: 2015-4-16 23:19
没看懂你到底想要实现什么功能
作者: x331275955    时间: 2015-4-16 23:45
  1. #include <stdio.h>
  2. int main()
  3. {
  4.     int shi=0;
  5.     int fen=0;
  6.     int miao=0;
  7.    
  8.     printf("请输入时间值(用:隔开):\n");
  9.     scanf("%d:%d:%d",&shi,&fen,&miao);
  10.     if (miao <59)
  11.     {
  12.         miao++;
  13.     }else
  14.         
  15.     {
  16.         fen++;
  17.         miao=0;
  18.     }
  19.     if (fen==60)
  20.     {
  21.         shi++;
  22.         fen=0;
  23.     }
  24.     if(shi==24)
  25.     {
  26.         shi=0;
  27.     }
  28.     printf("下一秒是%02d:%02d:%02d\n",shi,fen,miao);
  29.     return 0;
  30. }
复制代码
不知道是不是你想要的。

作者: 37°天黑    时间: 2015-4-17 21:26
sunyang 发表于 2015-4-17 16:32
我结果没有优化输出格式,加几个判断就好了。或者加一个数组,把结果存进去,打印的时候判断是不是0,是0 ...

是的 ,今天我也想了一下,你的那一段程序缺个判断,你的思路绝对是最牛的!我和室友看到后简直自愧不如!加油!
作者: 舒少勇    时间: 2015-4-17 21:49
sunyang 发表于 2015-4-17 16:34
你确定你输入正确了? 我测试的时候测试过23:59:59
输出结果是0:0:0
由于是格式问题我就没在改 ...

恩  输入23:59:59 是对的 但是输入其他的 就不对了  不过你的这个想法非常好啊   你在if里面再判断下 就应该ok了
作者: mony    时间: 2015-4-20 22:35
for循环没法做吧,楼主是不是想说用了三个if嵌套啊?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2