PTA,C语言,中 'L1-075强迫症' 这样写为什么不能拿满分呢?求解决!

img

img


这个问题困扰我好久了,真心请教哪里有问题。别用数组,我还不会数组

问题解决请点击一下采纳谢谢

#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;
} 

img