.编写程序,实现以下功能: (1)创建一个列表,依次存入每个月对应的天数,假设2月份的天数固定为28天 (2)根据用户输入的月份查询该月的天数并输出。
时间: 2023-11-28 08:50:38 浏览: 128
下面是Python语言的代码实现:
```python
# 创建一个列表存放每个月对应的天数
days_of_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
# 获取用户输入的月份
month = int(input("请输入一个月份(1-12):"))
if month < 1 or month > 12:
print("输入的月份不合法!")
else:
# 查询该月的天数并输出
days = days_of_month[month-1]
print("{}月份有{}天。".format(month, days))
```
运行程序后,可以输入一个月份(1-12),程序会输出该月份的天数。如果输入的月份不在1-12之间,程序会提示“输入的月份不合法!”。
相关问题
c语言编程序实现:输入任意一个年份、月份,输出该月份的公历日历(要求用循环控制打印)。 提示: 1.先求出从公元1年1月1日到这个月的1日总共有多少天,并求出这个月的1日是星期几。 2.可以将每个月的天数存入一个数组中,但是不需要将一个月的每一天存入数组中。 输入格式: 输入年份、月份,数据之间以空格分隔。 输出格式: 每项数据占4个字符宽度,右对齐。
以下是C语言编写的程序实现所述功能:
```c
#include <stdio.h>
int main() {
int year, month, days, weekDay, i, j, k, count;
int daysOfMonth[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
char week[7][4] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
printf("Please input the year and month: ");
scanf("%d%d", &year, &month);
// 计算该月第一天是星期几,并计算该月总天数
days = 0;
for (i = 1; i < year; i++) {
if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0) {
days += 366;
} else {
days += 365;
}
}
for (i = 0; i < month - 1; i++) {
days += daysOfMonth[i];
if (i == 1 && ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)) {
days++; // 闰年二月多一天
}
}
weekDay = (days + 1) % 7; // 公元1年1月1日是星期一,需要加1
// 打印日历
printf("%4s%4s%4s%4s%4s%4s%4s\n", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
count = 0;
for (i = 0; i < weekDay; i++) {
printf(" "); // 打印月份第一天之前的空格
count++;
}
for (i = 1; i <= daysOfMonth[month - 1]; i++) {
printf("%4d", i);
count++;
if (count == 7) {
printf("\n");
count = 0;
}
}
if (count != 0) {
for (i = count; i < 7; i++) {
printf(" "); // 打印月份最后一天之后的空格
}
printf("\n");
}
return 0;
}
```
程序首先通过输入年份和月份,计算出该月第一天是星期几以及该月总天数。接着,程序打印出日历表头,并根据该月第一天是星期几打印出该月第一天之前的空格。然后,程序循环打印出该月的每一天,每打印一天计数器加1,当计数器等于7时换行。最后,程序判断该月最后一天之后是否有空格需要打印,并输出换行符。
编程序实现:输入任意一个年份、月份,输出该月份的公历日历(要求用循环控制打印)。 提示: 1.先求出从公元1年1月1日到这个月的1日总共有多少天,并求出这个月的1日是星期几。 2.可以将每个月的天数存入一个数组中,但是不需要将一个月的每一天存入数组中。 常见问题: 1.如何控制某个月1日的打印位置? 答:先由程序计算出来该月份的1日是星期几,然后控制在打印“1”之前打印相应个数的空格。 2.如何控制每周和每月的打印换行? 答:可以根据当前这一天的打印位置控制每周的打印换行,并根据该月份的总天数控制每月的打印换行。 输入格式: 输入年份、月份,数据之间以空格分隔。 输出格式: 每项数据占4个字符宽度,右对齐。 输入样例: 2019 10 输出样例: Sun Mon Tue Wed Thu Fri Sat 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
好的,以下是 Python 代码实现:
```python
# 定义每个月的天数
month_days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
# 获取用户输入的年份和月份
year, month = map(int, input().split())
# 计算该月份的1日是星期几
total_days = 0
for i in range(1, month):
total_days += month_days[i-1]
total_days += 1 # 加上该月的1日
week_day = (total_days + (year - 1)*365 + (year - 1)//4 - (year - 1)//100 + (year - 1)//400) % 7
# 打印日历表格
print("Sun Mon Tue Wed Thu Fri Sat")
print(" " * week_day, end="") # 打印该月的1日前面的空格
for day in range(1, month_days[month-1]+1):
print(f"{day:4d}", end="")
week_day += 1
if week_day == 7: # 每周打印换行
print()
week_day = 0
print() # 最后一行打印换行
```
该代码首先定义了一个列表 `month_days` 存储每个月的天数,然后获取用户输入的年份和月份。接着通过循环计算该月份的1日是星期几。最后按照格式打印出日历表格,其中需要注意控制每个月的1日的打印位置和每周和每月的打印换行。
阅读全文