C语言 关于年月日排序的问题

img

请问我应该怎么修改一下?这个问题困扰我,能有人帮我看一下吗?这个应该怎么进行修改这个代码问题?

可以把年月日放在数组里,针对格式写三种scanf 然后判断数组里年所在的下标在哪个位置对应输出写好的scanf


#include <stdio.h>
int main()
{
    int date[3];
    scanf("%d-%d-%d",&date[0],&date[1],&date[2]);
    int i=0;
    int max=date[0];
    int ret=0;
    for(i=0;i<3;i++)
    {
       if(max<date[i])
       {
         max=date[i];
         ret=i;
       }
    }
    if(ret==0)
    {
    printf("%d-%02d-%02d",date[0],date[1],date[2]);
    }
    else if(ret==1)
    {
            printf("%d-%02d-%02d",date[1],date[0],date[2]);
    }
    else
    {
            printf("%d-%02d-%02d",date[2],date[0],date[1]);
    }
    
    return 0;
}

代码如下,有帮助的话采纳一下哦!
因为给的输入格式月肯定在日前面,所以就if条件语句就可。

#include <stdio.h>
int main()
{
    int a,b,c;
    scanf("%d-%d-%d",&a,&b,&c);
    if(a>31)
        printf("%4d-%02d-%02d",a,b,c);
    if(b>31)
        printf("%4d-%02d-%02d",b,a,c);
    if(c>31)
        printf("%4d-%02d-%02d",c,a,b);
}

scanf里面d和y换一下位置就行了,你都写反了