c语言的菜鸟问题,急!!!

来源:百度知道 编辑:UC知道 时间:2024/05/16 20:19:57
要写一个判断日期是否合理的C程序,要求输入年月日,判断是否有效
我写IF写的快要晕头了..
#include <stdio.h>
void main()
{
int y,m,d;
printf("qsrnyr:");
scanf("%d %d %d",&y,&m,&d);
if(m<1 || m>12)
printf("error\n");
else if(m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12)
if(d>=31) printf("error\n");
else if(d>30) printf("error\n");
else if(m==2)
if(y%4==0)
if(d>29)
printf("error\n");
else if(d>28)
printf("error\n");
else printf("normal\n");
}
最好把正确的写出来,这样比较好懂..谢谢!!!

#include <stdio.h>
void main()
{
int y,m,d;
int flag=0;
while(1)
{
puts("gets years:");
scanf("%d",&y);
if(y>0)//年大于0
break;
else
puts("error!");
}
while(1)
{
puts("gets month:");
scanf("%d",&m);
if(m>0&&m<=12)//月在1-12之间
break;
else
puts("error!");
}
while(1)
{
puts("gets day:");
scanf("%d",&d);
switch(m)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(d>0&&d<=31)
{
flag=1;
}
else
{
puts("error!");
}
break;
case 2:
if((y%4==0&&y%100!=0)||(y%400==0))//判断平润年
{
if(d>0&&d<30)
{
flag=1;
}