| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1161 人关注过本帖
标题:小白求助。。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
快速回复:小白求助。。C案例为什么同月同日不同年的时候却无法输出,比如200103 ...
数据加载中...
 
   



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

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