用c语言,用户输入年份,打印该年每个月的天数。
时间: 2023-12-03 13:44:11 浏览: 39
下面是一个简单的实现,代码中使用了闰年的判断逻辑:
```c
#include <stdio.h>
int main() {
int year, month, days;
int days_of_month[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
printf("请输入年份:");
scanf("%d", &year);
// 判断是否为闰年
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
days_of_month[1] = 29;
}
for (month = 1; month <= 12; month++) {
days = days_of_month[month - 1];
printf("%d年%d月有%d天\n", year, month, days);
}
return 0;
}
```
代码中先定义了一个包含每个月天数的数组 `days_of_month`,然后通过用户输入的年份判断是否为闰年,如果是,则将二月的天数修改为29。最后通过循环遍历每个月并打印出来。
相关问题
用c语言定义一个函数,输入年份可得此年每个月的天数,用空格隔开
好的,以下是用C语言定义的函数,可以输入年份并返回此年每个月的天数,以空格隔开:
```c
#include <stdio.h>
// 判断是否为闰年
int isLeapYear(int year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
return 1;
} else {
return 0;
}
}
// 获取每个月的天数
void getMonthDays(int year, int days[]) {
for (int i = 1; i <= 12; i++) {
if (i == 2) {
if (isLeapYear(year)) {
days[i] = 29;
} else {
days[i] = 28;
}
} else if (i == 4 || i == 6 || i == 9 || i == 11) {
days[i] = 30;
} else {
days[i] = 31;
}
}
}
// 主函数
int main() {
int year;
int days[13]; // 数组下标从1开始,需要多一个元素
printf("请输入年份:");
scanf("%d", &year);
getMonthDays(year, days);
printf("%d年的每个月的天数为:", year);
for (int i = 1; i <= 12; i++) {
printf("%d ", days[i]);
}
printf("\n");
return 0;
}
```
使用方法:
1. 将上述代码保存为一个以`.c`为后缀的文件,比如`count_days.c`。
2. 在命令行中进入该文件所在的目录,执行`gcc count_days.c -o count_days`编译生成可执行文件。
3. 执行`./count_days`运行程序,按照提示输入年份即可。
c语言输入年份月份输出天数
C语言输入年份和月份,然后输出该月份的天数。这个问题是非常常见的。需要考虑闰年和平年的情况,因为闰年的2月份有29天,而平年的2月份只有28天。因此,我们需要编写代码来判断给定年份是否为闰年,并针对闰年和平年计算每个月份的天数。
首先,我们可以让用户输入年份和月份,然后用if语句来判断年份是否为闰年。具体判断闰年的方法是判断能否被4整除,但不能被100整除,或者是能被400整除。当用户输入的年份是闰年时,我们需要修改2月份的天数为29。代码如下:
if((year%4==0 && year%100!=0) || (year%400==0)){
if(month==2){
days = 29;
}
}
接下来,我们需要考虑每个月份的天数,使用switch语句来处理。一月、三月、五月、七月、八月、十月和十二月都有31天,四月、六月、九月和十一月都有30天,而二月份要根据是否为闰年来计算天数。代码如下:
switch(month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;break;
case 4:
case 6:
case 9:
case 11:
days = 30;break;
case 2:
if((year%4==0 && year%100!=0) || (year%400==0)){
days = 29;
}else{
days = 28;
}
break;
}
最后,我们需要输出计算好的天数。代码如下:
printf("该月份共有%d天\n", days);
这就是一个完整的程序,可以输入年份和月份来输出该月份的天数。