标题:小白求助。。C案例为什么同月同日不同年的时候却无法输出,比如20010303和2 ...
只看楼主
zhl601205348
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2020-6-9
结帖率:100%
 问题点数:0 回复次数:2 
小白求助。。C案例为什么同月同日不同年的时候却无法输出,比如20010303和20020303
#include <stdio.h>
/*检查日期合法性*/
int checkdate(int year,int month,int day)
{if(year<1900||year>2020)
{printf("输入的年份无效!\n");return 0;}
else if(month<0||month>12)
{printf("输入的月份无效!\n");return 0;}
else if(day<=0||day>31)
{printf("输入的日期无效!\n");return 0;}
else
{switch(month)
{case 4:
case 6:
case 9:
case 11:
    /*小月30天*/
    if(day>30)
    {printf("输入的日期无效!\n");return 0;}break;
case 2:
    if ((year%4==0&&year%100!=0)||year%400==0)
    {if(day>29)
    {printf("输入的日期无效!\n");return 0;}
    }
    else
    {if(day>28)
    {printf("输入的日期无效!\n");return 0;}
    }break;
}/*end of switch(month)*/
}
}
void main()
{int y0,m0,d0;/*生日*/
int y1,m1,d1;/*当前日期*/
int years,months,days;/*实足年龄*/
printf("请输入学生的生日:");
scanf("%d%d%d",&y0,&m0,&d0);
/*当前计算日期合法性检查*/
if(!checkdate(y0,m0,d0))
{printf("请重新打开程序!\n");}
else
{printf("请输入当前日期:");
scanf("%d%d%d",&y1,&m1,&d1);
if(!checkdate(y1,m1,d1))
{printf("请重新打开程序!\n");}
    if(y0>y1)
{printf("出生年份比当前年份晚!\n请重新打开程序!\n");}
else if(y0==y1&&m0>m1)
    {printf("出生月份比当前月份晚!\n请重新打开程序!\n");}
else if(y0==y1&&m0==m1&&d0>d1)
    {printf("出生日期比当前日期晚!\n请重新打开程序!\n");}
/*计算实足年龄*/
else if(years=y1-y0,months=m1-m0,days=d1-d0)
{if(days<0)
{months--;}
/*end of switch(m1)*/
/*end of if(days<0)*/
/*修正实足年龄*/
if(months<0)
{years--;}
/*end of if(months<0)*/
printf("出生日期:%d年%d月%d日\n",y0,m0,d0);
printf("当前日期:%d年%d月%d日\n",y1,m1,d1);
printf("实足年龄:%d岁\n",years);
}
}
}
搜索更多相关主题的帖子: int 日期 printf 输入 if 
2020-06-13 23:46
zhl601205348
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2020-6-9
得分:0 
其他的判定条件和运算结果都没问题,就是突然卡在了同月同日不同年份的时候无法输出,别说无法输出,就是在计算这一步骤的时候就不动了,百思不得其解。难道选择结构要将这个特殊条件加上去吗?
2020-06-13 23:50
zhl601205348
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2020-6-9
得分:0 
新手原谅啊,我知道哪里出错了。修正程序段
/*计算实足年龄*/
else if(y0<=y1)
{
{years=y1-y0;months=m1-m0;days=d1-d0;}
    if(days<0)
{months--;}
/*end of switch(m1)*/
2020-06-14 01:33



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-502113-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.131593 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved