编写一函数打印一个月的月历函数的参数是月份的天数和本月第一天是星期几
时间: 2024-02-06 14:12:15 浏览: 53
好的,以下是一个打印月历的C语言函数:
```c
#include <stdio.h>
void printCalendar(int days, int firstDay) {
// 打印月历表头
printf("Sun Mon Tue Wed Thu Fri Sat\n");
int i;
// 打印第一行空格
for (i = 1; i < firstDay; i++) {
printf(" ");
}
// 打印日期
for (i = 1; i <= days; i++) {
printf("%-5d", i);
if ((i + firstDay - 1) % 7 == 0) {
printf("\n");
}
}
printf("\n");
}
```
这个函数接受两个参数,第一个参数是月份的天数,第二个参数是本月第一天是星期几,星期日为0,星期一为1,以此类推。函数会打印出一个月的月历,格式为每一天占5个字符宽度,每周7天,以星期天作为每周的第一天。我们首先打印月历表头,然后在第一行打印出前面的空格。接下来,我们使用一个for循环遍历这个月的每一天,并打印出日期。如果当天是周六,则换行打印下一周的日期。最后,我们在月历的末尾打印一个换行符。
相关问题
c语言 无参无变量 编写一个函数,打印一个月的月历。函数的参数是要打印月份的天数以及本月第一天是星期几。 在主程序中输入要打印月份的天数以及本月第一天是星期几,然后调用此函数打印输出月历。
以下是实现该功能的C语言代码:
```c
#include <stdio.h>
void print_calendar(int days, int first_day) {
int i, j, day = 1;
printf("日 一 二 三 四 五 六\n");
for (i = 0; i < 6; i++) {
for (j = 0; j < 7; j++) {
if (i == 0 && j < first_day) {
printf(" ");
} else if (day <= days) {
printf("%2d ", day++);
} else {
printf(" ");
}
}
printf("\n");
if (day > days) {
break;
}
}
}
int main() {
int days, first_day;
printf("请输入要打印月份的天数和本月第一天是星期几:");
scanf("%d %d", &days, &first_day);
print_calendar(days, first_day);
return 0;
}
```
在该程序中,我们定义了一个名为`print_calendar`的函数,该函数接受两个参数:`days`表示这个月的天数,`first_day`表示这个月的第一天是星期几。该函数的作用是打印出这个月的月历。
在主程序中,我们先输入要打印月份的天数和本月第一天是星期几,然后调用`print_calendar`函数将月历打印出来。
万年历程序。编写程序打印任意给定的年份的日历或者某年某月的月历或者查询某一天是星期几。C语言
好的,以下是一个基于 C 语言的万年历程序:
```c
#include <stdio.h>
// 计算某年某月的天数
int getDays(int year, int month) {
int days;
switch (month) {
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:
days = 31;
break;
}
return days;
}
// 计算某年某月1号是星期几
int getWeekday(int year, int month) {
int weekday;
if (month == 1 || month == 2) {
month += 12;
year--;
}
weekday = (1 + 2 * month + 3 * (month + 1) / 5 + year + year / 4 - year / 100 + year / 400) % 7;
return weekday;
}
// 打印某年某月的月历
void printMonth(int year, int month) {
int days, weekday, i;
char *months[] = {"", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"};
printf("%s %d\n", months[month], year);
printf("Su Mo Tu We Th Fr Sa\n");
days = getDays(year, month);
weekday = getWeekday(year, month);
for (i = 0; i < weekday; i++) {
printf(" ");
}
for (i = 1; i <= days; i++) {
printf("%2d ", i);
if ((i + weekday) % 7 == 0) {
printf("\n");
}
}
if ((i + weekday - 1) % 7 != 0) {
printf("\n");
}
}
// 打印某年的日历
void printYear(int year) {
int i;
for (i = 1; i <= 12; i++) {
printMonth(year, i);
}
}
// 查询某一天是星期几
void queryWeekday(int year, int month, int day) {
char *weekdays[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
int weekday = (getWeekday(year, month) + day - 1) % 7;
printf("%d-%d-%d is %s\n", year, month, day, weekdays[weekday]);
}
int main() {
int year, month, day;
int choice;
printf("1. Print a calendar for a given year\n");
printf("2. Print a calendar for a given month\n");
printf("3. Query the weekday of a given date\n");
printf("Please enter your choice (1-3): ");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("Enter the year: ");
scanf("%d", &year);
printYear(year);
break;
case 2:
printf("Enter the year: ");
scanf("%d", &year);
printf("Enter the month: ");
scanf("%d", &month);
printMonth(year, month);
break;
case 3:
printf("Enter the year: ");
scanf("%d", &year);
printf("Enter the month: ");
scanf("%d", &month);
printf("Enter the day: ");
scanf("%d", &day);
queryWeekday(year, month, day);
break;
default:
printf("Invalid choice!\n");
break;
}
return 0;
}
```
程序运行后会先让用户选择要执行的操作,然后根据用户的选择打印出日历或查询某一天的星期几。其中,`getDays()` 函数用于计算某年某月的天数,`getWeekday()` 函数用于计算某年某月1号是星期几,`printMonth()` 函数用于打印某年某月的月历,`printYear()` 函数用于打印某年的日历,`queryWeekday()` 函数用于查询某一天是星期几。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)