C语言打印某年日历

用C语言打印某年的日历,代码如下:
#include <stdio.h>

main(){
/*判断输入年份是否是闰年的函数*/
int isLeapYear(int);
/*判断每月天数的函数*/
int monthDays(int,int);
/*判断某个日期是星期几的函数*/
int getWeekDay(int,int,int);
/*输出某年某月月历的函数*/
void outMonthDays(int,int);

  int Year,Month;
  printf("请输入年份:");
  scanf("%d",&Year);
  printf("%d年日历为:\n",Year);
  printf("----------------------------------------------\n");
  for(Month=1;Month<=12;Month++){
    outMonthDays(Year,Month);
  }
  return 0;
}
/*判断闰年函数的具体实现*/
int isLeapYear(int Year){
  if(Year%4==0 && Year%100!=0 || Year%400==0)
    return 1;
  return 0;
}
/*判断每月天数的具体实现*/
int monthDays(int Year,int Month){
 if(Month == 1 || Month == 3 || Month == 5 || Month == 7 || Month == 8 || Month == 10 || Month == 12){
    return 31;
 }else if(Month == 4 || Month == 6 || Month == 9 |
  • 18
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
以下是C语言代码实现,可以打印任意年份的日历,每行三个月份: ```c #include <stdio.h> // 判断是否为闰年 int isLeapYear(int year) { return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0; } // 计算某年某月的天数 int getDaysOfMonth(int year, int month) { int days[] = {31, 28 + isLeapYear(year), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; return days[month - 1]; } // 打印某年某月日历 void printCalendar(int year, int month) { // 计算该月第一天是星期几 int firstDayOfWeek = 1; // 假设公元1年1月1日是星期1 for (int i = 1; i < year; i++) { firstDayOfWeek = (firstDayOfWeek + 365 + isLeapYear(i)) % 7; } for (int i = 1; i < month; i++) { firstDayOfWeek = (firstDayOfWeek + getDaysOfMonth(year, i)) % 7; } // 打印日历表头 printf("%d年%d月\n", year, month); printf("日 一 二 三 四 五 六\n"); // 打印该月日历 int daysOfMonth = getDaysOfMonth(year, month); for (int i = 0; i < firstDayOfWeek; i++) { printf(" "); } for (int i = 1; i <= daysOfMonth; i++) { printf("%2d ", i); if ((firstDayOfWeek + i) % 7 == 0) { printf("\n"); } } printf("\n"); } int main() { int year; printf("请输入年份:"); scanf("%d", &year); for (int i = 1; i <= 12; i++) { printCalendar(year, i); if (i % 3 == 0) { printf("\n"); } } return 0; } ``` 代码中,`isLeapYear`函数用于判断某年是否为闰年,`getDaysOfMonth`函数用于计算某年某月的天数,`printCalendar`函数用于打印某年某月日历。在`main`函数中,循环打印该年的所有月份,并每三个月份打印一个空行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值