7-2 然后是几点 (15分)
程序员文章站
2022-06-07 10:37:58
...
有时候人们用四位数字表示一个时间,比如1106表示11点零6分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。
读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,即5点30分表示为530。注意,第二个数字表示的分钟数可能超过60,也可能是负数。
输入格式:
输入在一行中给出2个整数,分别是四位数字表示的起始时间、以及流逝的分钟数,其间以空格分隔。注意:在起始时间中,当小时为个位数时,没有前导的零,即5点30分表示为530;流逝的分钟数可能超过60,也可能是负数。
输出格式:
输出四位数字表示的终止时间,当小时为个位数时,没有前导的零。题目保证起始时间和终止时间在同一天内。
输入样例:
1120 110
输出样例:
1310
我的代码
#include <stdio.h>
int main(void){
int h, m, a, b;
scanf("%d %d", &h, &m);
a = h % 100; //取出分钟数
b = m + a; //总分钟数
h/=100; //取出小时数
h += b/60; //进位到小时
m = b%60; //剩余分钟数
printf("%d", 100*h + m);
return 0;
}
结果不对,不知道为什么。
别人的代码:
#include<stdio.h>
int main(){
int stime,etime;
int smin,emin;
int passed;
scanf("%d%d",&stime,&passed);
smin = stime/100*60 + stime % 100;//统计总共的分钟数
emin = smin + passed;//再加上过去的分钟数
etime = emin/60*100+emin%60; //整体转换成正常时间
printf("%d\n",etime);
}
感觉这种思路比较清晰。我的相当于是分钟和小时分开考虑计算了,反正都涉及转化,不如直接整体先换成分钟再倒成小时 比较清楚。
上一篇: 男人吃腰子有什么反应,吃腰子可以壮阳嘛