大家帮忙看看这个程序那些地方可以优化,感觉太长了····
程序代码:#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);
}
}









