我被問到正確的程序,檢查用戶輸入的日期是否合法或不在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