c语言编程实现: 从键盘输入年份和月份,计算从该年1月1日到当月月底的总天数。 输入格式: 输入某年某月,如:2021 11 输出格式: 从该年1月1日到当月月底的总天数,最后换行。 输入样例: 2021 11 输出样例: 334
时间: 2023-11-27 18:55:12 浏览: 160
以下是 C 语言实现的代码:
```c
#include <stdio.h>
#include <stdbool.h>
bool isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
int main() {
int year, month;
scanf("%d%d", &year, &month);
int days = 0;
for (int m = 1; m < month; m++) {
switch (m) {
case 2:
days += isLeapYear(year) ? 29 : 28;
break;
case 4:
case 6:
case 9:
case 11:
days += 30;
break;
default:
days += 31;
break;
}
}
days += 1; // 加上当月的第一天
printf("%d\n", days);
return 0;
}
```
首先通过 `scanf` 函数从标准输入中读取年份和月份。然后使用一个 `for` 循环,计算从该年1月1日到当月月底的总天数。循环中使用 `switch` 语句计算每个月的天数,需要特判闰年的二月。最后将当月的第一天加上去即可。
注意,这个程序假设输入的年份和月份都是合法的。如果需要对输入进行有效性检查,可以添加相应的代码。
阅读全文