作业-国庆-下一天

#include<stdio.h>
int main()
{
    int a,b,c;
    char e='y';
next:    printf("请输入您的生日,以x年-x月-x日的形式输入");
    scanf("%d-%d-%d",&a,&b,&c); 
    if(a%4==0)
    {
        printf("此年是闰年\n");
    if(b==1||b==3||b==5||b==7||b==8||b==10)
        {
            if(c==31)
            {
                c=1,b++;
             } 
             else if(c<31&&c>0)
             {
                 c++;
             }
             else
             {
                 printf("输入错误");
             }
        }
         else if(b==4||b==6||b==9||b==11)
         {
            if(c==30)
            {
                c=1,b++;
            }
            else if(c<30&&c>0)
            {
                c++;
            }
            else
            {
                printf("输入错误");
            }
         }
         else if(b==12)
         {
            if(c==31)
            {
                a++,b=1,c=1;    
            }
            else if(c<31&&c>0)
            {
                c++;
            }
            else
            {
                printf("输入错误");
            }
            }
        
            else if(b==2)
            {
            if(c==28)
            {
                c=1,b++;
            }
            else if(c<28&&c>0)
            {
                c++;
            }
            else if(c==29) 
            {
                printf("此年无2月29日,请重新输入\n");
                
                
                goto next;
            
            
            }
            else
            {
                printf("输入错误");
            }
         }
           else
         {
            printf("输入错误");
             }
        }    
    
    else
    {
        printf("此年是平年\n");
        if(b==1||b==3||b==5||b==7||b==8||b==10)
        {
            if(c==31)
            {
                c=1,b++;
             } 
             else if(c<31&&c>0)
             {
                 c++;
             }
             else
             {
                 printf("输入错误");
             }
        }
         else if(b==4||b==6||b==9||b==11)
         {
            if(c==30)
            {
                c=1,b++;
            }
            else if(c<30&&c>0)
            {
                c++;
            }
            else
            {
                printf("输入错误");
            }
         }
         else if(b==12)
         {
            if(c==31)
            {
                a++,b=1,c=1;    
            }
            else if(c<31&&c>0)
            {
                c++;
            }
            else
            {
                printf("输入错误");
            }
            }
            else if(b==2)
            {
                if(c==29)
                {
                    c=1,b++;
                }
                else if(c<29&&c>0)
                {
                    c++;
                }
                else
                {
                    printf("输入错误");
                }
            }
    }
    printf("您生日的下一天是%d-%d-%d\n",a,b,c);
    if(getchar()=='y')
    { 
    goto next;
}
    
    
}

这应该是我最近编的最长的程序了,比涉及自定义函数的都长......

这不是好事,一个程序应该是越简洁越好才对。以后应该养成画图的习惯。

加上循环应该会简化不少。不过还没想好。

这里的知识就是if条件句的运用了,真是充实的练习呢。

本身感觉没什么好说的,但循环上出了点问题。

我本来想让程序在平年2月29那个地方按‘y’返回的来着,但如果这么写的话:

else if(c==29)
{
printf("此年无2月29日,请按'y'重新输入,或按其它键退出\n");
if(getchar()=='y')
{
goto next;

}

虽然是可以,但程序还是会输出“您生日的下一天是”,这不是我想要的。

但如果用return 0,程序就结束了。这也不能用break啊......

所以只好这样写了。这样的话,那个人如果一直输入平年的2月29的话,就出不去了呢(笑)。

如果是工作的话,这肯定不是客户想要的,所以我还需要改进呢。

但现在真的太晚啦,等等吧......

posted on 2016-10-07 00:09  wxc123  阅读(280)  评论(0编辑  收藏  举报

导航