我被问到正确的程序,检查用户输入的日期是否合法或不在C.我试图写它,但我想逻辑不是对。交流程序来检查输入的日期是否有效
//Legitimate date
#include <stdio.h>
void main()
{
int d,m,y,leap;
int legit = 0;
printf("Enter the date\n");
scanf("%i.%i.%i",&d,&m,&y);
if(y % 400 == 0 || (y % 100 != 0 && y % 4 == 0))
{leap=1;}
if (m<13)
{
if (m == 1 || (3 || (5 || (7 || (8 || (10 || (12)))))))
{if (d <=31)
{legit=1;}}
else if (m == 4 || (6 || (9 || (11))))
{if (d <= 30)
{legit = 1;}}
else
{
if (leap == 1)
{if (d <= 29)
{legit = 1;}}
if (leap == 0)
{{if (d <= 28)
legit = 1;}}
}
}
if (legit==1)
printf("It is a legitimate date!\n");
else
printf("It's not a legitimate date!");
}
我得到正确的输出,如果一个月有31天,但在几个月的休息,输出是合法的,如果这一天是小于32你的帮助表示赞赏!
'leap'未初始化。启用警告! – 2013-02-19 07:22:52