题解 | #小乐乐定闹钟#
小乐乐定闹钟
https://www.nowcoder.com/practice/0f7e422e12be4a7f9958ca2a82abc775
#include<stdio.h> int main() { int h,m,k;//定义闹钟时刻为h:m,要睡的时长为k int a,b;//定义a,b为中间变量,后续解释 scanf("%d:%d %d",&h,&m,&k);//输入现在时刻和要睡的时长 a=(int)k/60.0;//a为k可换算多少小时 b=k-60*a;//b为k换算完小时后剩下的分钟数 h=(h+a+(m+b>60?1:0))%24;//闹钟的时有三部分组成:h(原小时)+a(k可转换的小时)+(m+b>60?1:0)k换算完小时后剩下的分钟数与原分钟相加是否可再转换为1小时,闹钟的小时不可超过24,故要用24进行取余 m=(m+b>=60?m+b-60:m+b);//闹钟的分要注意原分钟数加k换算完小时后剩下的分钟数有可能大于等于60,要进一步换算成小时,最后要减60,剩下的那部分是最终的分钟 printf("%02d:%02d",h,m);//%2d下2会输出为 2,%02d下2会输出为02 return 0; }//三目运算符:判断条件?a:b,若判断条件为真,输出a,判断条件为假,输出b
总结:
分钟满60要进1到小时,进完小时剩下的留给自己
闹钟的小时不可超过24,最后要进行24取余操作
%2d下2会输出空2,%02d下2会输出02
三目运算符:判断条件?a:b,若判断条件为真,输出a,判断条件为假,输出b