PTA 月-日-年输出年-月-日&然后是几点&

7-12

输入:月-日-年(mm-dd-yyyy),保证给出的日期是1900年元旦至今合法的日期。

输出:年-月-日(yyyy-mm-dd)

#include <stdio.h>
int main()
{
    int yyyy,mm,dd;
    scanf("%d-%d-%d",&mm,&dd,&yyyy);
    printf("%04d-%02d-%02d",yyyy,mm,dd);
}

7-14 然后是几点

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

输出格式:输出不多于四位数字表示的终止时间,当小时为个位数时,没有前导的零。题目保证起始时间和终止时间是在同一天。四位数字表示的时间,比如11点06分表示为1106。

#include <stdio.h>
int main()
{
	int before;
	int a;
	scanf("%d %d",&before,&a);
	int hour1=0;
	int minute1=0;
	int cnt=0;
	cnt ++;
	int i=before;//为了不让起始时间在进入while循环后,被赋予新的变量,故i=before;
	i/=10;
	while (i>0){
		cnt ++; 
		i/=10;
    }//数位数
    if (cnt=2){
		hour1=before/100;
		minute1=before%100;
	}
	if (cnt==3){
		hour1=before/100;
		minute1=before%100;
	}
	if(cnt==4){
		hour1=before/100;
		minute1=before%100;
	}
	if (a>=0){
	    int hour2=a/60;
	    int minute2=a%60;
     	int m=hour1+hour2+(minute1+minute2)/60;
    	int n=(minute1+minute2)%60;
    	printf("%d%02d",m,n);
    }else{
    	int minutemax=hour1*60+minute1;
    	int m=(minutemax+a)/60;
    	int n=(minutemax+a)%60;
    	printf("%d%02d",m,n);
	}//如果流逝分钟数是负数。
	return 0;
}

代码中printf("%02d");具体解释戳此格式化输出总结

代码中运用了数位数,变量名为cnt,具体用法戳此数位数

编辑该代码中,因考虑到起始时间有类似030的sample位数为2,无法进入if语句,赋值hour1、minute1,故增加一个if语句:if(cnt==2).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值