c语言isleap函数,用c语言写万年历应该怎样写?

小弟编写了一个,但总是报错,麻烦哪位高人指点一下,告诉我错在哪里?应该怎么改?事成之后必有重谢。

我输入年月日时,总是给出日期错误的提示。

#include

int isLeap()

{

int year,isleap;

i

小弟编写了一个,但总是报错,麻烦哪位高人指点一下,告诉我错在哪里?应该怎么改?事成之后必有重谢。

我输入年月日时,总是给出日期错误的提示。

#include

int isLeap()

{

int year,isleap;

if(((year%4==0)&&!(year%100==0))||(year%400==0))

isleap=1;

else

isleap=0;

return isleap;

}

int lastdayofmonth()

{

int lastday,month,isleap;

switch (month)

{

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12: lastday=31;

case 4:

case 6:

case 9:

case 11: lastday=30;

case 2:

{

if (isleap==1) lastday=29;

else lastday=28;

}

}

return lastday;

}

int ValidDate()

{

int year,month,day,valid;

int yearOK,monthOK,dayOK;

if ((year>1811)&&(year<=2012)) yearOK=1;

else yearOK=0;

if ((month>0)&&(month<=12)) monthOK=1;

else monthOK=0;

if ((day>0)&&(day<=lastdayofmonth())) dayOK=1;

else dayOK=0;

if(yearOK && monthOK && dayOK) valid=1;

else valid=0;

return valid;

}

int getday()

{

int year,month,day;

printf("Enter a month/a day/a year\n");

scanf("%d %d %d",&month,&day,&year);

return ValidDate();

}

void incrementdate()

{

int day,year,month;

if (day

else

{

day=1;

if (month==12)

{

month=1;

year+=1;

}

else month+=1;

}

}

void print()

{

int day,year,month;

if (ValidDate())

printf("nextday is %d/%d/%d\n",month,day,year);

else

printf("Date error\n");

}

void main()

{

getday();

isLeap();

ValidDate();

incrementdate();

print();

}

展开

全部

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值