问题解决请点击一下采纳谢谢
#include<stdio.h>
int main(void)
{
int number,year,month;
scanf("%d",&number);
if(number>=100000&&number<=202112)
{
month=number%100;
year=number/100;
printf("%d_%d",year,month);
}else if(number<=9999)
{
month=number%100;
year=number/100;
if(year>22){
printf("19%02d_%02d",year,month);
}else{
printf("20%02d_%02d",year,month);
}
}
}
根据题目的提示信息,应该是处理年份了出了点问题,题目要求小于22的按20处理,即可用"20%02d"来打印对应的年份;而其他情况,则按19处理,即可按"19%02d",例如输入2205,则应打印1922-05,仅供参考,修改如下:
#include <stdio.h>
int main(void){
int a,b,c;
scanf("%d",&a);
c=a/100;
b=a%100;
//https://www.it1352.com/2629557.html
if(c<22){ //小于22的都是20开头 ,%02d保证c为个位数时再它前填充一个0,保证年份完整,下面亦同
printf("20%02d-%d",c,b);
}else{ //其他都是19开头
printf("19%02d-%d",c,b);
}
return 0;
}