请用switch语句进行程序设计,从键盘上输入一个指定年份和月份的日期,日期格式为:2018-7,判断出该月份有几天。
时间: 2023-05-31 08:19:18 浏览: 310
### 回答1:
以下是使用switch语句进行程序设计,从键盘上输入一个指定年份和月份的日期,日期格式为:2018-7,判断出该月份有几天的示例代码:
```
#include <stdio.h>
int main()
{
int year, month, days;
printf("请输入日期,格式为:年份-月份(例如:2018-7):");
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 == && year % 100 != ) || year % 400 == ) {
days = 29;
} else {
days = 28;
}
break;
default:
printf("输入的月份有误!\n");
return 1;
}
printf("%d年%d月有%d天。\n", year, month, days);
return ;
}
```
运行程序后,输入日期,例如:2018-7,程序会输出该月份有几天。
### 回答2:
在设计从键盘输入一个指定年份和月份的日期,日期格式为"年份-月份"的程序时,使用switch语句可以非常方便地判断该月份的天数,代码如下:
```c++
#include <iostream>
using namespace std;
int main() {
int year, month, days;
cout << "请输入指定的年份和月份(格式:2018-7):";
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 2:
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
days = 29;
}
else {
days = 28;
}
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
default:
cout << "输入的月份有误!" << endl;
return 0;
}
cout << year << "年" << month << "月有" << days << "天。" << endl;
return 0;
}
```
这里使用了switch语句判断了月份的大小,并根据每个月份的不同,赋值不同的天数变量days。需要注意的是,对于二月份,还需要特别判断是否为闰年,判断方法为能够被4整除但不能被100整除,或者能够被400整除。最后输出结果之前需要先判断输入的月份是否合法,也就是是否在1~12之间。
使用switch语句进行程序设计,可以有效地判断不同情况下所需执行的操作,简化代码的编写和修改,提高程序的可读性和可维护性。
### 回答3:
switch语句是C++语言中的选择结构语句之一,可以根据变量的不同取值来执行不同的代码块。关于如何从键盘输入一个指定年份和月份的日期,可以利用cin函数进行输入,具体实现代码如下:
int year, month;
cin >> year >> month;
需要注意的是,上述代码在输入年份和月份时,是通过空格键或回车键来分离两个整数的。如果需要输入格式为“2018-7”的日期,可以采用字符串形式进行输入,然后将其拆分成年份和月份两个整数,具体实现代码如下:
int year, month;
string date;
cin >> date;
int pos = date.find('-');
year = stoi(date.substr(0, pos));
month = stoi(date.substr(pos + 1));
在获取了年份和月份之后,可以根据以下规则来判断该月份有几天:
1. 如果是1月、3月、5月、7月、8月、10月或12月,则该月份有31天。
2. 如果是4月、6月、9月或11月,则该月份有30天。
3. 对于平年的2月份,则该月份有28天。
4. 对于闰年的2月份,则该月份有29天。
因此,我们可以使用switch语句来实现具体的代码逻辑,如下所示:
switch(month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
cout << "该月份有31天" << endl;
break;
case 4:
case 6:
case 9:
case 11:
cout << "该月份有30天" << endl;
break;
case 2:
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
cout << "该月份有29天" << endl;
} else {
cout << "该月份有28天" << endl;
}
break;
default:
cout << "输入的月份不合法" << endl;
break;
}
在上述代码中,如果输入的月份不在1到12的范围内,则会输出“输入的月份不合法”的提示信息。如果输入的年份是闰年,则会在2月份输出“该月份有29天”的提示信息,否则输出“该月份有28天”的提示信息。其余月份则分别输出“该月份有31天”和“该月份有30天”的提示信息。
阅读全文