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。