1第一章程序练习《计算时间差》

《计算时间差》

两种基本思路

其实就是简单的两个数相减,但是遇到的一个问题是可能不够减,需要借位的情况
1.第一种思路是大单位全部换成小单位,然后做差,最后再换算回来
2.第二种思路是就用 小时减小时分钟减分钟,但是不够减的时候考虑用if语句判断然后借位

//第一种思路
#include<stdio.h>
int main()
{
	int hour1,minute1;
	int hour2,minute2;
	
	//输入两个时间 
	printf("请输入第一个时间\n");
	scanf("%d %d",&hour1,&minute1);
	printf("请输入第二个时间\n"); 
	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;
 } 
//第二种思路
#include<stdio.h>
int main()
{
	int hour1,minute1;
	int hour2,minute2;
	
	//输入两个时间 
	printf("请输入第一个时间\n");
	scanf("%d %d",&hour1,&minute1);
	printf("请输入第二个时间\n"); 
	scanf("%d %d",&hour2,&minute2);
	
	//小时减小时分钟减分钟 
    int hour=hour2-hour1;
	int minute=minute2-minute1;
	
	//借位 
	if(minute<0)
	{
		minute=minute+60;
		hour--;
	 } 
	printf("时间差是%d小时%d分钟;",hour,minute);
	
	return 0;
 } 

扩展

加入两个时间要比较,现在要求是t1是比较小的时间,t2是比较大的时间,这样子才可以在最后一步可以减,但是这就会遇到可能输入的t1是比较大的时间的情况,这时就需要移植《两个数互换》的代码,如下实现a,b两个数交换

int a,b;
int t;
t=a;
a=b;
b=t;

扩展后的程序如下(仍然以第一种思路为例)

#include<stdio.h>
int main()
{
	int hour1,minute1;
	int hour2,minute2;
	//输入两个时间 
	printf("请输入第一个时间\n");
	scanf("%d %d",&hour1,&minute1);
	printf("请输入第二个时间\n"); 
	scanf("%d %d",&hour2,&minute2);
	//把两个时间都换算成分钟 
	int t1 = hour1 * 60 + minute1;
	int t2 = hour2 * 60 + minute2;
	//因为后面要t2 - t1 ,所以如果t1比t2大,那将两个数互换位置 
	if(t1>t2)
	{
		int a=t1;
		t1=t2;
		t2=a;
	}
	//做差,然后分别做商和取余得到结果 
	int t = t2 - t1;
	printf("时间差是%d小时%d分钟;",t/60,t%60);
	
	return 0;
 } 
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值