能不能幫我看看這個怎么出錯了
#include<stdio.h>
int isLeap(int year) //判斷是否為閏年
{
if(year%100==0||year%4==0)
return 1;
else
return 0;
}
int daysInMonth(int year,int month) //判斷某月天數
{
int i;
i=isLeap(year);
if(i==1)
{
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:printf("31天\n");break;
case 2:printf("29天\n");break;
case 4:
case 6:
case 9:
case 11:printf("30天\n");break;
}
}
if(i==0)
{
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:printf("31天\n");break;
case 2:printf("28天\n");break;
case 4:
case 6:
case 9:
case 11:printf("30天\n");break;
}
}
}
int isLegal(int year,int month,int day) //判斷日期是否合法
{
int i,j=1,k;
i=isLeap(year);
k=daysInMonth(year,month);
if((month<=0||month>=13)||(day<=0||day>31))
j=0;
else
{
if(i==1)
{
if(month<1||month>12)
j=0;
if(month==4||month==6||month==9||month==11)
{
if(day>30||day<=0)
j=0;
}
if(month==2)
{
if(day<=0||day>29)
j=0;
}
}
if(i==0)
{
if(month<1||month>12)
j=0;
if(month==4||month==6||month==9||month==11)
{
if(day<=0||day>31)
j=0;
}
if(month==2)
{
if(day<=0||day>28)
j=0;
}
}
}
return j;
}
int Num(int year,int month,int day)
{
int i,sum;
i=isLeap(year);
switch (month)
{
case 1:sum = 0;break;
case 2:sum = 31;break;
case 3:sum = 59;break;
case 4:sum = 90;break;
case 5:sum = 120;break;
case 6:sum = 151;break;
case 7:sum = 181;break;
case 8:sum = 212;break;
case 9:sum = 243;break;
case 10:sum = 273;break;
case 11:sum = 304;break;
case 12:sum = 334;break;
}
sum=sum+day;
if(i==1&&month>2)
{
sum++;
}
return sum;
}
int main()
{
int year,month,day;
int a,b,c;
a=isLeap(year);
b=isLegal(year,month,day);
if (b==0)
{
do
{
printf("請輸入正確格式的日期\n");
scanf("%d-%d-%d",&year,&month,&day);
} while(b==1);
}
c=Num(year,month,day);
printf("該日期是該年的第%d天",c);
printf("%d",b);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/225179.html
標籤:其它技術問題
上一篇:順序穿的插入洗掉
下一篇:求助:C語言的題
