问答详情
源自:4-17 switch与if语句的应用

改了一个自己输入年月日来查询的代码,大家可以参考一下。

增加了年月日输入错误提示,包括分辨了闰年2月是否输入超过29之类的

增加了循环,可以一直查询

#include <stdio.h>

int main() 

    //输入需要计算的日期 

    int year;

    int month;

    int day;

    int sum;

    int flag;

    int num;

    while(1)

{


printf("Enter year:");

   scanf("%d",&year);

   printf("Enter month:");

   scanf("%d",&month);

   printf("Enter day:");

   scanf("%d",&day);

   if(year%100==0)

       if(year%400==0)

           flag=1;

       else

           flag=0;

   else

       if(year%4==0)

           flag=1;

       else

           flag=0;

num=month; //这里用来代替month

month--;  //因为懒得改后面的月份数字了,理解一下就好

   switch(month)

   {

       case 11:

           sum+=30;

        if(month==11&&day>31)

        {

printf("\n日期输入错误!%d月请输入日期1-31\n",num);

          break;

    }

       case 10:

           sum+=31;

           if(month==10&&day>30)

        {

printf("\n日期输入错误!%d月请输入日期1-30\n",num);

          break;

    }

       case 9:

           sum+=30;

           if(month==9&&day>31)

        {

printf("\n日期输入错误!%d月请输入日期1-31\n",num);

          break;

    }

       case 8:

           sum+=31;

           if(month==8&&day>30)

        {

printf("\n日期输入错误!%d月请输入日期1-30\n",num);

          break;

    }

       case 7:

           sum+=31;

           if(month==7&&day>31)

        {

printf("\n日期输入错误!%d月请输入日期1-31\n",num);

          break;

    }

       case 6:

           sum+=30;

           if(month==6&&day>31)

        {

printf("\n日期输入错误!%d月请输入日期1-31\n",num);

          break;

    }

       case 5:

           sum+=31;

           if(month==5&&day>30)

        {

printf("\n日期输入错误!%d月请输入日期1-30\n",num);

          break;

    }

       case 4:

           sum+=30;

           if(month==4&&day>31)

        {

printf("\n日期输入错误!%d月请输入日期1-31\n",num);

          break;

    }

       case 3:

           sum+=31;

           if(month==3&&day>30)

        {

printf("\n日期输入错误!%d月请输入日期1-30\n",num);

          break;

    }

       case 2:

        if(month==2&&day>31)

        {

printf("\n日期输入错误!%d月请输入日期1-31\n",num);

          break;

    }

           if(flag==1)

sum+=29;

           else

            sum+=28;

       case 1:

           sum+=31;

           if(flag==1)

            {

                if(month==1&&day>29)

                    {

printf("\n日期输入错误!%d年是闰年,%d月请输入日期1-29\n",year,num);

                    break;

                    }

}

           else

            {

               if(month==1&&day>28)

                    {

printf("\n日期输入错误!%d年不是闰年,%d月请输入日期1-28\n",year,num);

                    break;

                    }

}

       case 0:

        if(year<1)

        {

        printf("\n年份输入错误!请输入大于0的整数\n");

        break;

}

        if(day<1)

        {

        printf("\n日期输入错误!请输入大于0的整数\n");

        break;

}

        if(month==0)

               {

                if(day>31)

        {

printf("\n日期输入错误!请输入日期1-31\n");

          break;

    }

sum=day;

                   month++;

    printf("\n%d年%d月%d日是该年的第%d天\n",year,month,day,sum);

    }

           else

            {

sum+=day;

               month++;

    printf("\n%d年%d月%d日是该年的第%d天\n",year,month,day,sum);

    }

break;        

       default:

       printf("\n月份输入错误!请输入1-12月份\n");

       break;

   }

}

return 0;

}


提问者:冻咚 2018-07-21 16:17

个回答

  • 冻咚
    2018-07-21 16:24:36

    111