voidshow_year(int year)

{inti,j,k,t,n;                           // 用来辅助计数int table[24][21] = {0};                     // 年历数组int month_day[12] = {31,28,31,30,31,30,31,31,30,31,30,31}; // 每月上限天数if ((0 == year%4 || 0 == year%400) && 0 != year%100)    //闰年检查,如果是闰年,2月上限天数改为29

{

month_day[2] = 29;

}

printf ("******************\n");

printf ("%d \n", year);

printf ("******************\n");for (i=0; i<12; i++)                       // 为了使逻辑更加清晰,一次循环只完成一个月的日期填写,i为当前月份

{n=cal_first(i+1);                     // n为当前月份第一天的星期数,cal_first函数中的月数必须为1~12,for (j=(i/3)*6; j3)*6+6; j++)             // 所以这里传参时+1,j用来根据月数控制每个月在年历数组中的第一维坐标

{                                // 坐标(纵坐标)的位置,同样的,用来根据月数控制每个月在年历数组中for (k=(i%3)*7; k3)*7+7; k++)          // 第二维坐标(横坐标)的位置

{

t= (j%6)*7 + k%7 - n + 2;            // t用来临时记录当前位置应该填入年历数组的值,为了简化逻辑,这里通过if (0 >=t)                     // 数学计算记录每一个位置应填入的值,(j%6)*7 + k%7计算出的值是本

{                           // 月的第几个位置,-n+2就会计算出当前格内正确的日期。这样做会导致得出continue;                    // 负数或0,或炒熟每月天数上限,我们用if + continue将其跳过,这样

}                           // 不正确的日期就依然是年历数组初始化时的0if (t <=month_day[i])

{

table[j][k]=t;

}else{continue;

}

}

}

}for (i=0; i<24; i++)                      // 至此,年历数组已经全部填好,接下来是打印环节,相信已经比较好理解了

{                                 // 每隔6行打印标头,7列多打印几个空格,遇到数组中为0则同样打印空格if (0 ==i)

{

printf ("Jan Feb Mar\n");

printf ("Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun\n");

}if (6 ==i)

{

printf ("Apr May Jun\n");

printf ("Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun\n");

}if (12 ==i)

{

printf ("Jul Agu Sep\n");

printf ("Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun\n");

}if (18 ==i)

{

printf ("Oct Nov Dec\n");

printf ("Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun Mon Tue Wen Thu Fir Sat Sun\n");

}for (j=0; j<21; j++)

{if (7 == j || 14 ==j)

{

printf (" ");

}if (0 ==table[i][j])

{

printf (" ");continue;

}

printf ("%4d", table[i][j]);

}

printf ("\n");

}

}

打印英文年历C语言函数,C语言打印年历相关推荐

  1. 快速傅里叶变换c语言函数,C语言实现FFT(快速傅里叶变换)

    while(1); } #include #include /********************************************************************* ...

  2. 东方财富 c语言函数,C语言的歧义

    本文来自:/?p=830 语言是人与人相互沟通的途径,而计算机语言则是人和计算机沟通的途径.就算是任何再完美的自然语言都会有歧义,但是又是什么让人和计算计算机间产生了歧义呢? 下面这篇文章来自Gowr ...

  3. 装箱问题c语言函数,C语言基于贪心算法解决装箱问题的方法

    本文实例讲述了C语言基于贪心算法解决装箱问题的方法.分享给大家供大家参考,具体如下: 问题描述: 有一些箱子,容量为V,同时有n个物品,每个物品有一个体积(小于等于箱子容量),要求将物品全部装入箱子中 ...

  4. 潭州教育c语言函数,C语言知识点(2)

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 2.3 整型数据 整形常量 在C语言程序中,整型常量可以用十进制.八进制和十六进制等形式表示.十进制基本常量用一串连续的数字表示,例如32767.-327 ...

  5. 数组排序c语言函数_C语言如何写出返回数组最大最小值之差的函数(C primer plus 10-5)...

    程序内容: 编写一个函数,返回储存在都变了类型数组中最大值和最小值的差值,并在一个简单的程序中测试该函数. 程序为C Primer Plus第十章第四题的答案示例 附:程序代码为本人亲自编写,并非书内 ...

  6. 双向链表操作c语言 函数,c语言 双向链表的基础操作

    //头文件 #pragma once typedef int DataType; typedef struct LinkList { DataType _data; struct LinkList*  ...

  7. 【Go】Go 语言函数

    文章目录 一.Go 语言函数 二.函数的声明 三.函数的调用 四.函数参数 1. 值传递和引用传递 (1)值传递 (2)引用传递 2. 不定参数传值 五.函数返回值 理解 Golang 的延迟调用(d ...

  8. c r语言中rank函数,R语言rank函数详细解析

    R语言rank函数详细解析 发布于 2016-01-04 16:26:04 | 557 次阅读 | 评论: 0 | 来源: PHPERZ R 数据统计分析语言R是用于统计分析.绘图的语言和操作环境.R ...

  9. linux父进程中显示子进程pid,请教linux下c语言函数fork父进程打印子进程的PID

    请教linux下c语言函数fork父进程打印子进程的PID 关注:296  答案:2  信息版本:手机版 解决时间 2019-01-14 04:55 雨不眠的下 2019-01-13 12:23 用于 ...

最新文章

  1. 大脑构造图与功能解析_施工技术特辑 | 全套脚手架三维构造图解析
  2. linux 基本的操作
  3. wxWidgets:wxPython 概述
  4. 本博客弃用,请移步http://ningios.com查看最新
  5. 计算机组成原理 控制冒险,电子科大-系统结构实验-解决控制冒险.docx
  6. [小才能]防备误删文件
  7. ubuntu中如何解压rar文件
  8. js中的异步与同步,解决由异步引起的问题
  9. android虚拟pdf打印机,虚拟打印机PDF
  10. android ijk 播放器,ijkplayer 播放器:在Android端进行native调试
  11. 虚拟人出新晋卷王,无薪工作70天却没人认出来
  12. apk android 应用qq表情,一句代码让你的安卓APP支持emoji表情
  13. java翁凯_翁凯-JAVA
  14. 2022大淘宝技术工程师推荐书单
  15. JAVA毕业设计共享充电宝管理系统计算机源码+lw文档+系统+调试部署+数据库
  16. python负数的处理
  17. 说说你平时怎么优化mysql的_面试:给我说说你平时是如何优化MySQL的?
  18. linux. qt信号崩溃,【创龙AM4379 Cortex-A9试用体验】之I/O中断异步通知驱动程序+QT捕获Linux系统信号+测试信号通知...
  19. 通俗讲解 Kademlia 原理
  20. Java使用Jsoup爬虫获取网站内容(三)获取元素内容属性的方法

热门文章

  1. Chapter 5 Blood Type——33
  2. pureMVC简单示例及其原理讲解四(Controller层)
  3. imgareaselect 缩略图 裁剪图片
  4. .Net 中的反射(查看基本类型信息) - Part.2
  5. 栈在表达式计算过程中的应用
  6. 快速高效 | iOS身份证识别
  7. linux基础命令(-)
  8. 2017年秋招-广联达面试及思考
  9. java输出一些内容到日志文件
  10. 第三章 中间件,3.1 万亿级数据洪峰下的分布式消息引擎(作者:冯嘉、誓嘉、尘央、牟羽)...