PTA:7-97 约会成功了吗?

该编程题目要求编写一个程序,判断给定的日期是否在未来且不在2021年9月9日之前,满足条件则输出yes,反之no。程序利用闰年规则和月份天数来验证输入日期的合法性。
摘要由CSDN通过智能技术生成

作者 夏仁强

单位 贵州工程应用技术学院

2021年9月9日,张三想约一直暗恋了很久的的女生小芳看电影,小芳告诉张三这天没空,可以答应在某年某月某日陪他一起看。输入一个约会的日期,请你编写程序判断最终张三是否能实现他约会的愿望,若能实现则输出yes,否则输出no。注意,约会不能穿越到2021年9月9日前。

输入格式:

在一行中输入年月日,用-分隔。

输出格式:

合法的日期输出yes,不合法的日期输出no

输入样例1:

2022-7-7

输出样例1:

yes

输入样例2:

2022-2-29

输出样例2:

no

输入样例3:

2021-2-28

输出样例3:

no

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB

#include <stdio.h>
int xiao( int year, int month, int day){    //判断年月日合法的函数
    int flag = 0;    //标记不合法
    int months[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};    //定义平年每月天数数组
    if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))    //判断是否为闰年
         months[1]++;    //是闰年2月是29天
    if(day > months[month - 1] || day < 1)    //判断天数是否合法
        flag = 0;
    else if(month > 12 || month < 1)    //判断月份是否合法
        flag = 0;
    else if(year > 2021)    //判断年份是否合法
        flag = 1 ;
    else if(year == 2021 && month > 9)    //判断是否在2021年9月份以后
        flag = 1;
    else if(month == 9 && day > 9)    //判断是否在2021年9月9号以后
        flag = 1;
    else
        flag = 0;
    return flag;
}
int main(){
    int year, month, day;    //年, 月, 日
    scanf("%d-%d-%d", &year, &month, &day);
    if(xiao(year, month, day) == 1)    //如果输入的年月日合法,这里合法的意思是在日历中存在这一天
        printf("yes");
    else
        printf("no");
    return 0;
}

  • 18
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值