c语言写万年历,请自动分行
时间: 2024-02-24 12:55:42 浏览: 29
好的,下面是修改后的C语言代码,可以自动分行输出:
```c
#include <stdio.h>
int main()
{
int year, month, day, week, i, j;
printf("请输入年份:");
scanf("%d", &year);
printf("请输入月份:");
scanf("%d", &month);
day = 1;
week = 1;
// 计算当月第一天是星期几
for (i = 1; i < year; i++)
{
if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)
day += 366;
else
day += 365;
}
for (i = 1; i < month; i++)
{
if (i == 4 || i == 6 || i == 9 || i == 11)
day += 30;
else if (i == 2)
{
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
day += 29;
else
day += 28;
}
else
day += 31;
}
week = day % 7;
printf("日 一 二 三 四 五 六\n");
for (i = 0; i < week; i++)
printf(" ");
if (month == 4 || month == 6 || month == 9 || month == 11)
j = 30;
else if (month == 2)
{
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
j = 29;
else
j = 28;
}
else
j = 31;
for (i = 1; i <= j; i++)
{
printf("%2d ", i);
if ((i + week) % 7 == 0)
printf("\n");
}
if ((i + week - 1) % 7 != 0)
printf("\n");
return 0;
}
```
在输出每个月的日历时,如果最后一行没有满7个数字,则自动补全到下一行。如果最后一行已经满了7个数字,则不需要再补全。这样就可以实现自动分行的功能了。
相关推荐
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)