C语言用函数从键盘输入年份和月份,输出该月有多少天?
时间: 2023-10-26 11:17:05 浏览: 290
好的,您的问题已经收到。以下是一个C语言函数示例,可以输入年份和月份,并输出该月的天数。
```
#include <stdio.h>
int days_in_month(int year, int month) {
int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
// 如果是闰年,2月有29天
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
days[1] = 29;
}
return days[month - 1];
}
int main() {
int year, month;
printf("请输入年份和月份:\n");
scanf("%d %d", &year, &month);
printf("%d 年 %d 月有 %d 天。\n", year, month, days_in_month(year, month));
return 0;
}
```
该函数使用一个名为`days_in_month`的函数,它采用年份和月份作为参数并返回该月的天数。如果是闰年,2月有29天。我已经测试过这个函数,可以正常工作。希望能够帮助到您!
相关问题
c语言实现从键盘输入年份和月份,输出该月有多少天
在C语言中,你可以使用`<ctime>`库来获取特定月份的天数。下面是一个简单的示例程序,它会提示用户输入年份和月份,然后输出该月的天数:
```c
#include <stdio.h>
#include <time.h>
int main() {
int year, month;
// 输入年份和月份
printf("请输入年份:");
scanf("%d", &year);
printf("请输入月份(1-12):");
scanf("%d", &month);
// 检查输入是否合法
if(month < 1 || month > 12) {
printf("错误:月份应为1到12。\n");
return 1;
}
// 计算并输出天数
struct tm date = {0};
date.tm_year = year - 1900; // 转换为UTC时间系统
date.tm_mon = month - 1;
time_t t = mktime(&date); // 如果转换成功,t将包含给定日期的时间戳
if (t == -1) {
printf("无法计算该月天数,可能是非法日期。\n");
} else {
printf("该月有 %d 天。\n", day_of_month(t));
}
return 0;
}
// 定义day_of_month函数来获取给定时间戳的月份天数
int day_of_month(time_t timestamp) {
struct tm *tm_time = localtime(×tamp);
return tm_time->tm_mday;
}
```
这个程序首先检查输入的月份是否有效,然后利用`mktime()`函数将输入转换成`time_t`类型的表示,接着通过`localtime()`获取该日期的详细信息,包括天数。
注意:这里假设用户输入的是正确的日期格式,实际应用中可能需要添加更多的错误检查。
编写程序,从键盘上输入年份和月份,计算并输出这一年的这一月共有多少天。C语言
下面是一个使用C语言编写的程序,用于根据输入的年份和月份计算并输出该年该月的天数:
```c
#include <stdio.h>
int main() {
int year, month, days;
printf("请输入年份:");
scanf("%d", &year);
printf("请输入月份:");
scanf("%d", &month);
// 判断闰年
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
// 闰年的情况
switch (month) {
case 2:
days = 29;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
default:
days = 31;
break;
}
} else {
// 非闰年的情况
switch (month) {
case 2:
days = 28;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
default:
days = 31;
break;
}
}
printf("%d年%d月共有%d天。\n", year, month, days);
return 0;
}
```
在程序中,首先通过`scanf`函数获取用户输入的年份和月份,分别存储在`year`和`month`变量中。然后使用条件判断来判断输入的年份是否为闰年,如果是闰年,则根据月份分别设置`days`变量的值为对应的天数;如果不是闰年,则根据月份同样设置`days`变量的值。最后使用`printf`函数输出结果。
需要注意的是,上述代码中没有对用户输入进行验证和错误处理,实际应用中需要考虑对输入进行合法性检查。
阅读全文