c语言编程X同学珍惜2019年的每一天,他想编程判断一个日期是不是2019年的某一天。他能做出来吗?(此时X同学还没掌握if语句,所以不能用,嘿!) 输入格式: 一个8位的正整数,表示一个日期。 输出格式: 是2019年的1天输出:YES,不是或日期非法输出:NO。
时间: 2024-10-06 11:01:01 浏览: 90
尽管X同学暂时还不熟悉if语句,但他可以用C语言的基本逻辑来解决这个问题。虽然直接的条件判断比较复杂,因为需要处理闰年的情况,但对于这个简单的任务,可以设计一个间接的方法。
首先,我们可以将日期转换成月份和日子。由于2019年是非闰年,它有365天,每个月的天数是固定的,除了二月有28天。X同学可以通过取余运算来确定是哪个月份,例如:
```c
int day = input % 10; // 日
int month = (input / 10) % 10; // 月
// 简化判断,假设没有考虑到2月29日
if (month == 2 && day > 28) {
printf("日期非法\n");
} else if (day >= 1 && day <= 31 && (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)) { // 非二月的其他月份
printf("是2019年的%d天\n", day);
} else if (month == 4 || month == 6 || month == 9 || month == 11) { // 四月、六月、九月和十一月
printf("是2019年的%d天\n", day);
} else {
printf("NO\n"); // 2月且合法的日子,或者其他不符合的日期
}
```
请注意,这只是一个简化版本,没有处理闰年的特殊情况,如果需要更精确地判断是否是2019年,还需要检查输入的年份是否等于2019。不过既然X同学还没有学习if语句,上述代码已经足够完成基本的判断。如果他将来学了if语句,可以进一步优化这段代码。
阅读全文