输入年和月,则输出此年此月的天数,如大月有31天,小月有30天,而闰年的2月有29天,平年则只有28天。(必须使用switch结构实现,年份如果能被4整除但不能被100整除;或者能被400整除为闰年)
时间: 2023-05-31 08:18:55 浏览: 130
输入年和月的信息,输出该月对应的天数。注意合理性与闰年的判别。(switch语句练习)
5星 · 资源好评率100%
### 回答1:
好的,以下是使用switch结构实现输入年和月,输出此年此月的天数的代码:
```
#include <stdio.h>
int main() {
int year, month, days;
printf("请输入年份和月份,用空格隔开:");
scanf("%d %d", &year, &month);
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;
default:
printf("输入的月份不合法!");
return 0;
}
printf("%d年%d月有%d天。\n", year, month, days);
return 0;
}
```
代码中使用了switch结构,根据输入的月份来判断此月有多少天。其中,1、3、5、7、8、10、12月都有31天,4、6、9、11月都有30天,2月需要判断是否为闰年。如果能被4整除但不能被100整除,或者能被400整除,则为闰年,2月有29天,否则为平年,2月有28天。最后输出此年此月的天数。
### 回答2:
这道题目可以使用 switch 结构实现,主要的思路是根据输入的年份和月份判断该年该月的天数,最后通过输出语句将结果显示出来。
具体的实现步骤如下:
1. 接收用户输入的年份和月份,可以使用 Scanner 类完成输入操作。
2. 判断该年份是否为闰年,闰年的判断条件是能被4整除但不能被100整除,或者能被400整除。
3. 根据月份判断该月份的天数,大月有31天,小月有30天,而2月份则需要根据是否为闰年来判断,闰年的2月份有29天,否则为28天。
4. 使用 switch 结构对月份进行分类,根据不同的情况输出该年该月的天数。
下面是代码实现的一个例子:
```
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int year, month, days = 0;
Scanner input = new Scanner(System.in);
System.out.print("请输入年份:");
year = input.nextInt();
System.out.print("请输入月份:");
month = input.nextInt();
// 判断是否为闰年
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 2:
days = 29;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
}
} else {
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 2:
days = 28;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
}
}
System.out.println(year + "年" + month + "月有" + days + "天");
}
}
```
以上就是使用 switch 结构实现判断某年某月天数的具体方法,通过这个例子可以更加深入了解 switch 结构的使用方法,也可以巩固基本的语法知识。
### 回答3:
输入年份和月份,需要使用switch结构判断该年该月的天数。对于大月,一月、三月、五月、七月、八月、十月、十二月,天数为31天;对于小月,四月、六月、九月、十一月,天数为30天;对于二月份,如果该年为闰年,则有29天,否则有28天。
闰年的计算是:被4整除但不能被100整除,或者被400整除。其实我们可以使用一个函数来计算是否为闰年。
下面是实现代码:
```python
def is_leap_year(year):
return year % 4 == 0 and year % 100 != 0 or year % 400 == 0
year = int(input("请输入年份:"))
month = int(input("请输入月份:"))
days = 0
# 使用switch结构计算天数
# 大月 31天
# 小月 30天
# 二月 判断是否为闰年
switch(month):
case 1: days = 31;break
case 3: days = 31;break
case 5: days = 31;break
case 7: days = 31;break
case 8: days = 31;break
case 10: days = 31;break
case 12: days = 31;break
case 4: days = 30;break
case 6: days = 30;break
case 9: days = 30;break
case 11: days = 30;break
case 2:
if is_leap_year(year):
days = 29
else:
days = 28
break
default:
print("请输入正确的月份")
break
print("{0}年{1}月有{2}天".format(year, month, days))
```
这里使用了一个叫做is_leap_year的函数,它用来计算一个年份是否为闰年。如果是闰年,返回True,否则返回False。
在switch结构中,使用case来判断月份,如果是大月,则天数为31;如果是小月,则天数为30。如果是二月份,需要使用is_leap_year函数判断该年是否为闰年,如果是,则天数为29,否则为28。最后输出该年该月的天数即可。
阅读全文