首页 > 代码库 > 作业-国庆-下一天
作业-国庆-下一天
#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的话,就出不去了呢(笑)。
如果是工作的话,这肯定不是客户想要的,所以我还需要改进呢。
但现在真的太晚啦,等等吧......
作业-国庆-下一天
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。