完美世界的线上测试题

编程第二题

题目有点忘,时间计时器,将HH:MM:SS,+/-XX(s)计算过了多少秒后的时间,24小时制,很遗憾在测试的时候,我的正确率不高,只写对了17%,但是后来我又增加改进了,我想这回改进的应该对了,如果有错,欢迎指正!!

以下是源代码,调试了好久,其实算法很简单,就是细节要注意!!

#include <stdio.h>

#include <stdlib.h>


void get_time(int *hour, int *min, int *second, int const time_diff_second)

int h,m,s;

    

    h=time_diff_second/3600;

    m=(time_diff_second-h*3600)/60;

    s=time_diff_second-h*3600-m*60;

    

    

    if(time_diff_second>0)

    {    *second+=s;

        while(*second>=60){

            m+=*second/60;


            *second-=60;

            

        }

        *min+=m;

        while(*min>=60)

        {

            h=*min/60+h;

            *min-=60;

        }


        *hour+=h;

        while(*hour>=24){

            *hour-=24;

        }

        

        

        


    }

    else{

        *second+=s;

        while(*second<0){

            m+=*second/60;

            *second+=60;

            

        }

         *min+=m;

        while(*min<0)

        {

            h=h+m/60;

            *min+=60;

            

        }

        

        *hour+=h;

        while(*hour<0){

            *hour+=24;

        }

        

        

            }

    

    

    

}


int main()

{

    int hour, min, second, time_diff_second;

    

    while (scanf("%d:%d:%d,%d", &hour, &min, &second, &time_diff_second) != EOF) {

        

        get_time(&hour, &min, &second, time_diff_second);

        printf("%02d %02d %02d\n", hour, min, second);

    }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值