7-2 然后是几点

NO

有时候人们用四位数字表示一个时间,比如 1106 表示 11 点零 6 分。现在,你的程序要根据起始时间和流逝的时间计算出终止时间。

读入两个数字,第一个数字以这样的四位数字表示当前时间,第二个数字表示分钟数,计算当前时间经过那么多分钟后是几点,结果也表示为四位数字。当小时为个位数时,没有前导的零,例如 5 点 30 分表示为 530;0 点 30 分表示为 030。注意,第二个数字表示的分钟数可能超过 60,也可能是负数。

输入格式:

输入在一行中给出 2 个整数,分别是四位数字表示的起始时间、以及流逝的分钟数,其间以空格分隔。注意:在起始时间中,当小时为个位数时,没有前导的零,即 5 点 30 分表示为 530;0 点 30 分表示为 030。流逝的分钟数可能超过 60,也可能是负数。

输出格式:

输出不多于四位数字表示的终止时间,当小时为个位数时,没有前导的零。题目保证起始时间和终止时间在同一天内。

输入样例:

1120 110

输出样例:

1310

 代码:

NO1:

#include <stdio.h>
int main()
{
    int begin,past;   //定义起始时间和流逝时间
    int time;         //定义要输出的终止时间
    int h,m;            ///定义小时和分(看下面代码)
    scanf("%d %d",&begin,&past);
    time=begin/100*60+begin%100+past;   //将所有时间同一转化为分钟
    h=time/60*100;          //小时就是60的倍数再×100是为了题目要求的输出格式
    m=time%60;            //分钟就是对60取余数
    time=h+m;        
    printf("%03d\n",time);    //输出最终时间 ,其中%03d表示最少输出3位数,不够的话左边补0。 
    
    return 0;
}

 NO2:

#include <stdio.h>
int main()
{
int time;    //定义初始时间 
int past;    //定义过去的时间 
int hour;    //定义小时 
int minute;    //定义分钟 
int end;       //定义最后表示的时间 
scanf("%d %d",&time,&past);
hour=past/60;
minute=past%60;
while (minute<0){    //如果分钟数是负数,即后退时间运行此循环语句,因为可能有-40甚至-120分, 
	hour-=1;
	minute+=60;      //hour那已经-1了,相当于已经少了60分,所以在分钟这里再加上60分。 
	
}
//如果分钟不是负数,则表示往前走,运行这个语句 
end=time+hour*100+minute;   //先确定最终时间 
if (end%100 >= 60){     //如果最终时间的分钟显示大于60,比如70分,则运行该if语句 
	hour+=1;       //hour已经+1了,相当于多了60分,所以 在分钟这里减去60分。 
	minute-=60;
	end=time+hour*100+minute;
}
printf("%03d",end);    //输出最终时间 ,其中%03d表示最少输出3位数,不够的话左边补0。 
return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值