c语言:辛巳蛇宝男

该编程问题要求通过输入的身份证号和性别信息,判断个人是否为2001年辛巳蛇年春节(大年初一)或2002年除夕出生的男性。使用条件运算符实现,不使用if和switch语句。
摘要由CSDN通过智能技术生成

辛巳蛇宝男

任务描述

2001年01月24日是农历辛巳蛇年的春节(大年初一),2002年02月11日是辛巳蛇年的除夕。赵中瑞的生日是2002年01月07日,所以我们称他为“辛巳蛇宝男”,赵中瑞想知道还有谁和他一样是“辛巳蛇宝男”,你帮他找出来。(不允许用if语句和switch语句)(提示:使用条件运算符 ? : )

输入格式:
一行中给出一个中华人民共和国的二代身份证号和姓名,中间没有空格。注意:身份证号倒数第2位若为奇数则为男生,若为偶数则为女生,你知道吗?

输出格式:
若是“辛巳蛇宝男”则输出:YES,否则输出:NO。

输入示例1

为保密,样例中的身份证号前6位统一设为239999。

239999200003132617于龙

输出示例1

NO

输入示例2

239999200201210017刘哲

输出示例2

YES

代码

#include <stdio.h>

int main() {
    int year, month, day,gender;
    int a;
    char name[50];

    // 读取身份证号中的年月日
    scanf("%*6c%4d%2d%2d%*2c%1d%*1c%s", &year, &month, &day,&gender,name); //*表示跳过读取的内容而不进行赋值
    gender=gender%2;//身份证号倒数第2位若为奇数则为男生,若为偶数则为女生
    // 判断是否为辛巳蛇宝男
    a = ((year == 2001 && month == 1 && day >= 24) || (year == 2001 && month > 1) ||(year == 2002 && month < 2) || (year == 2002 && month == 2 && day <= 11));

    // 输出结果
    printf("%s",(a && gender)  ? "YES" : "NO");

    return 0;
}
  • 35
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值