写在最前面:本答案为作者和朋友讨论得出,请在没有思路时作为参考启发,不要直接抄袭
7-8 强迫症
这位更是重量级(
首先也是和第七题一样,要先仔细分析下题目的意思。
我们可以看出,输入的数字只有四位正整数和六位正整数,明白这点的话就可以开始确定数据的范围
题干里面说是保证输入的年份在1000年1月到2021年12月之间,由此我们可以得知四位正整数和六位正整数的最大值和最小值区间分别是 [0001-9912] 和 [100001-202112] (闭区间)
在确定好年份信息之后,我们变可以利用在之前最开始的顺序结构里面的方法来把数据拆分,得到自己想要的部分,按照题目要求的格式即可。
#include<stdio.h>
int main()
{
int year,a,b,c,d;
scanf("%d",&year);
if(year>=100001&&year<=202112)
{
b=year/100;
c=year%100;
printf("%d-%02d",b,c);
}
if(year>=1&&year<=9912)
{
d=year/100;
if(d<22)
{
year=year+200000;
b=year/100;
c=year%100;
printf("%d-%02d",b,c);
}
if(d>=22)
{
year=year+190000;
b=year/100;
c=year%100;
printf("%d-%02d",b,c);
}
}
return 0;
}