卫丽华


私信TA

用户名:angelirene

访问量:4056

签 名:

等  级
排  名 1178
经  验 3009
参赛次数 1
文章发表 35
年  龄 0
在职情况 学生
学  校 suqian college
专  业

  自我简介:

#include <stdio.h>

#include <string.h>

#include <math.h>

int fdate(int year,int month,int day);

int fy(int y);

int main()

{


   int a,b,c,d[3],k=0,i,j,temp,t;

   scanf("%d/%d/%d",&a,&b,&c);

   if(t=fdate(a,b,c))

   {

       for(i=0;i<k;i++)

            if(d[i]==t)

                break;

       if(i==k){

            d[k]=t;

            k++;

        }

   }

   if(t=fdate(c,b,a))

   {


       for(i=0;i<k;i++)

            if(d[i]==t)

                break;

       if(i==k){

        d[k]=t;

        k++;

        }

   }

   if(t=fdate(c,a,b))

   {


       for(i=0;i<k;i++)

            if(d[i]==t)

                break;

       if(i==k){

        d[k]=t;

        k++;

        }

   }

   for(i=0;i<k;i++)

    for(j=i+1;j<k;j++)

   {

       if(d[i]>d[j])

       {

           temp=d[i];

           d[i]=d[j];

           d[j]=temp;

       }


   }


    for(i=0;i<k;i++)

            printf("%d-%02d-%02d\n",d[i]/10000,d[i]%10000/100,d[i]%100);





    return 0;

}


int fy(int y)

{

    if(y>=60)

        return 1900+y;

    else

        return 2000+y;

}

int fdate(int year,int month,int day)

{

    int r;

    int m[][12]= {{ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},{ 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }};

    year=fy(year);

    if(year%4==0 &&year%100!=0 || year%400==0)//判断是闰年

   r=1;

else

r=0;

    if(month>12 || month<1 )

        return 0;

    if(m[r][month-1]<day ||day<1)

        return 0;

    else

        return year*10000+month*100+day;



}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区