洛谷新手村about当天时间差

11.25洛谷新手村<时间差题目记录>

  • 计算当天两个时间段内的时间差,且保证结束时间一定晚于开始时间。
  • 错误输出代码如下:
#include <stdio.h>
int main()
{
	    int a, b, c, d;
	    int h1, min1; 
	    h1 = c - a;
	    min1 = d - b; 
	    scanf("%d %d %d %d", &a, &b, &c, &d)if(min1 >= 0)
	         printf("%d %d", h1, min1);
	    else
	         printf("%d %d", h1-1, 60-b+d);
	    return 0;
}

程序由上而下一步一步进行。
因为a,b,c,d的值还没有输入,所以h1与min1无法计算。
故此错误代码会输出:
错误结果
思维严谨,一步步走。

  • 更改后的正确代码应为:
#include <stdio.h>
int main()
{
 	int a, b, c, d;
 	int h1, min1; 
 	scanf("%d %d %d %d", &a, &b, &c, &d);
 	h1 = c - a;   
 	min1 = d - b;  
 	if(min1 >= 0)
  		printf("%d %d", h1, min1);
 	else
  		printf("%d %d", h1-1, 60-b+d);
	return 0;
}

正确输出

  • 此外,慕课/b站翁凯教授对时间转换:(对取余的灵活应用)
    时间差为456分钟,hour = 362 / 60, min = 360 % 60。
    hour = 6,min = 2。

//PS:第一次摸博客,如何插入代码块纠结了半小时hahahahaha。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值