C语言输入一个年份和月份后(中间用空格分隔),计算并输出该年该月有多少天,若输入错误,则输出Error。
时间: 2024-10-20 15:15:06 浏览: 48
在C语言中,你可以使用`scanf`函数获取用户输入的年份和月份,然后通过判断每个月份的天数规则来计算总天数。这里需要注意的是闰年的处理,因为二月有28天或29天。以下是一个简单的示例程序:
```c
#include <stdio.h>
int main() {
int year, month;
char buffer[100]; // 存储用户的输入
// 输入年份和月份,用空格分隔
scanf("%s", buffer);
sscanf(buffer, "%d %d", &year, &month);
// 检查输入是否有效
if (sscanf(buffer, "%d %d", &year, &month) != 2 || year <= 0 || month <= 0 || month > 12) {
printf("Error\n");
} else {
// 计算每月天数
switch(month) {
case 2:
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) { // 闰年
printf("%d年%d月有29天\n", year, month);
} else {
printf("%d年%d月有28天\n", year, month);
}
break;
case 4: case 6: case 9: case 11:
printf("%d年%d月有30天\n", year, month);
break;
default:
printf("%d年%d月有31天\n", year, month);
}
}
return 0;
}
```
在这个程序里,我们首先读取用户的输入,并使用`sscanf`检查输入的有效性。接着,依据月份的不同,判断其天数,并打印结果。如果输入无效,会直接输出"Error"。
阅读全文