C&C++   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了有关时差换算的代码优化大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

本人向同学借鉴了一个有关于时差换算的代码,如下:

#include <stdio.h>
int main()
{
int hour1,minute1;
int hour2,minute2;
printf("请输入你想要进行换算的两个时间:\n");
scanf("%d %d",&hour1,&minute1);
scanf("%d %d",&hour2,&minute2);
int t1=hour1*60+minute1;
int t2=hour2*60+minute2;
int t=t2-t1;
printf("你所输入的两地的时差是%d小时%d分钟",t/60,t%60);
return 0;
}

该段代码可以进行两个时间的时差换算,运行结果如下:

有关时差换算的代码优化

但如通过多组数据的试验,发现有一个小bug,当输入的第一个数据时间晚于第二个数据的时候,就会出现输出时差为负数的情况发生,如图:

有关时差换算的代码优化

因为在我们的日常生活中,时间差只是两个时间的差值,所以是一个标量而并不是向量,所以不应该有负数的发生。

这种情况是我们不想遇到的,所以我们应该加入一个判断语句,对所输入的数据进行判断,以此来避免该情况的发生。

所以我加入了两端判断语句,如图:

if(hour2>hour1){

ih=hour2-hour1;
im=minute2-minute1;
if(im<-0){
im=60+im;
ih --;

}
}

 

if(hour2<hour1){
ih=hour2-hour1;
im=minute1-minute2;
if(ih<-0){
ih ++;
im=60+im;
}
}

这两段代码,对所输入的时间的数字进行了比较,以保证让所输出的时间差为正数。

所以优化后的代码如下图:

#include <stdio.h>
int main()
{
int hour1,minute1;
int hour2,minute2;
int im,ih;
printf("请输入你想要进行换算的两个时间:\n");
scanf("%d %d",&hour1,&minute1);
scanf("%d %d",&hour2,&minute2);
if(hour2>hour1){

ih=hour2-hour1;
im=minute2-minute1;
if(im<-0){
im=60+im;
ih --;

}
}
if(hour2<hour1){
ih=hour2-hour1;
im=minute1-minute2;
if(ih<-0){
ih ++;
im=60+im;


}

}
printf("您说输入的时差为%d时%d分。\n",ih,im);
return 0;
}

这样我们就可以避免上述情况的发生。

测试情况如下:

有关时差换算的代码优化

有关时差换算的代码优化

这样我们就可以避免上述情况的发生,无论所输入的两个数据具备怎样的关系,都可以正确的输出所需要的答案。

 

大佬总结

以上是大佬教程为你收集整理的有关时差换算的代码优化全部内容,希望文章能够帮你解决有关时差换算的代码优化所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: