大家帮忙看看这个程序那些地方可以优化,感觉太长了····
程序代码:
#include <stdio.h> #include <conio.h> int pdNF(int a); int pdYF(int a); int pdRQ(int a,int b,int c); int pdRQ(int a,int b,int c)//日期的判断 { int d=0,e; e=pdNF(a); if (e) switch (b) { case 1:case 3:case 5:case 7:case 8:case 10: case 12: if (c>0 && c<32) d=1; break; case 2: if (c>0 && c<30) d=1; break; default : if (c>0 && c<31) d=1; break; } else switch (b) { case 1:case 3:case 5:case 7:case 8:case 10: case 12: if (c>0 && c<32) d=1; break; case 2: if (c>0 && c<28) d=1; break; default : if (c>0 && c<31) d=1; break; } return d; } int pdYF( b)//月份的判断 { int a=0; if ((b<=0) || (b>=13)) a=0; else a=1; return a; } int pdNF( a)//闰年的判断 { int b; if(!(a%4)) { if(!(a%100)) { if (!(a%400)) b=1; else b=0; } else b=1; } else b=0; return b; } void main(void) { int a,b,c,n,y,r; printf ("请输入当前日期形如**** ** **:"); scanf ("%d %d %d",&a,&b,&c); n=pdNF(a); y=pdYF(b); r=pdRQ(a,b,c); if (n && y && r) printf("输入日期正确,当前日期为%d年%d月%d日",a,b,c); else { if(!y) printf("输入月份不正确,无%d月份",b); if(!r) printf("输入日期不正确,在%d年%d月中无%d日",a,b,c); } }