编程第二题
题目有点忘,时间计时器,将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);
}
}