关于日历程序的设计

1.设计要求;输入一个年份要求输出打印该年每个月的日历。

2.设计思路:要输出某年的日历,先求出该年第一天是星期几;再从1月到12月执行一次循环,

考虑闰年2月29天,月份有大小,天数按星期排列的问题。

日历程序及部分注释

#include

int runnian(int);

/函数申明;

void main()

{

int a[12][42] =

{0}; /定义一个数组

long int days =

0; /定义长整型变量,赋初值为0;days

int

n=1; /定义变量,n=1表示初始第一年;

int

c; /c表每一年的天数;

int p; /表星期;

int x ,y,i,j,m,b;

printf("please input the

year:"); /打印输出

scanf("%6d",&b);

/输入的年份b;

while(n <

b) /循环求b年前的所有天数和;

{

if( runnian( n )

) /调用闰年的函数;

c = 366;

else

c = 365;

days = days + c;

n++;

}

p=days%7; /p为b年第一天的星期;

for(i=0;i<12;i++) /循环12个月份;

{

x=1;

if(i==0||i==2||i==4||i==6||i==7||i==9||i==11)

{

y=0;

for(j=p;j<42;j++)

{

a[i][j]=x++;

if(x>31)

{

y = j+1;

break;

}

}

p=y%7;

}

else

if(i==1&&runnian( b

)) /调用闰年函数;

{

int y=0;

for(j=p;j<42;j++)

{

a[i][j]=x++;

if(x>29)

{

y = j+1;

break;

}

}

p=y%7;

}

else

if(i==1)

{

int y=0;

for(j=p;j<42;j++)

{

a[i][j]=x++;

if(x>28)

{

y = j+1;

break;

}

}

p=y%7;

}

else

{

y=0;

for(j=p;j<42;j++)

{

a[i][j]=x++;

if(x>30)

{

y = j+1;

break;

}

}

p=y%7;

}

}

for(m=1;m<=12;m++)

/循环语句执行打印输出;

{

printf("%3dmonth\n",m);/输出打印12个月的月份

printf("MON TUS WED THU FRI SAT

SUN\n");/输出打印星期;

for(j=0;j<6;j++)

{ 两个嵌套循环将每个月按六行七列排列;

for(i=j*7;i

{

if(a[m-1][i]==0)

{

printf(" ");

}

else

{

printf("%3d

",a[m-1][i]);

}

}

printf("\n");

}

}

}

int runnian( int b

) /闰年函数定义;

{

if ((b %4 == 0) && (b %

100 != 0) ||

(b % 400 ==

0) )

return

1; /返回值

else

return 0;

}

c语言一年日历程序,c语言日历程序相关推荐

  1. C语言是始祖,科技日历| 61年前,ALGOL语言创立!它是C语言等高级语言的直接“鼻祖”...

    原标题:科技日历| 61年前,ALGOL语言创立!它是C语言等高级语言的直接"鼻祖" 一提到计算机高级语言,可能很多人马上就会想到C语言.C++.Python.Java等等.ALG ...

  2. C语言游戏: 俄罗斯方块(Tetris)@兼谈程序优化方法 [源码+exe下载]

    消除重复:如何将程序逻辑与数据分开? ----俄罗斯方块(Tetris)@兼谈程序优化方法 背景提示: 1,数据,是程序设计的根本.因为任何程序都可以看作是一组数据,和作用于其上的一组操作,这也是面向 ...

  3. c语言万年历代码作业,用c语言编写万年历程序

    用c语言编写万年历程序 <C 程序设计>课程设计报告 2011-2012学年第二学期 设计题目:万年历的设计 指导教师: 李素若 完成时间:2012 年 6月 1日至 2011年 6月 2 ...

  4. c语言 伪随机数程序,C语言的伪随机数

    一直想好好的系统的学习一下C语言的伪随机数,今天终于逮到机会了 伪随机数 C语言中有可以产生随机数据的函数,需要添加stdlib.h和time.h头文件.首先在main函数开头加上srand(unsi ...

  5. c语言编号程序,c语言中如何在一个程序语句前加编号c语言中如何在一个程序语句前加...

    多数情况下,现在的编程高手都是从学习C 语言入门的,在学校里,计算机相关专业中最基础的课程也包括C 语言,因此,掌握好这门课程对每一位立志成为优秀程序员的初学者来说是大有裨益的!另外,对想通过参加全国 ...

  6. c 应用程序多语言版本,c – 在win32 API应用程序中实现全球化/多语言功能

    Windows上多语言应用程序的基础是使用"资源".资源是附加在可执行文件末尾的块,它只包含数据,并以非常特定的方式格式化,以便Windows能够解释这些数据. 在资源中,您可以找 ...

  7. 程序员语言也有鄙视链!某美团程序员爆料:筛选简历时,用go语言的基本不看!网友:当韭菜还当出优越感了!...

    程序员使用的语言有鄙视链吗?有人说有,有人说没有.一个美团员工发帖说,筛选简历时用go语言的基本不看.短短一句话,把对go语言的鄙视体现得淋漓尽致,难道go语言真的不如其他语言? 和他一样想法的前阿里 ...

  8. c语言const与*位置关系,C语言程序的存储区域与const关键字的使用方法

    四.程序中段的使用 C语言中的全局区(静态区),实际上对应着下述几个段: 只读数据段:R0 Data 读写数据段:RW Data 未初始化数据段:BSS Data 一般来说,直接定义的全局变量在未初始 ...

  9. 棱形旋转c语言程序_C 语言时隔 5 年重回巅峰,这 20 个热门项目拿去练手!

    在上个月的 TIOBE 编程语言排名中,C 语言和 Java 的差距只有 0.01%.在近日 TIOBE 公布的 2020 年 5 月编程语言排行榜中,C 语言成功超越了 Java,重返第一的王者宝座 ...

  10. 让英文版windows 8支持非Unicode程序的语言方法

    Control Panel\Clock, Language, and Region 点击 Region change system locle 非Unicode程序的语言,只要将当前非Unicode程 ...

最新文章

  1. FOSCommentBundle功能包:设置Doctrine ODM映射
  2. Enterprise Library 2.0 Hands On Lab 翻译(3):数据访问程序块(三)
  3. Spring Tool Suite 4 添加反编译插件
  4. ugui源码_UGUI整体解决方案基础篇(Unity 2019)
  5. Linux——SSH服务器
  6. oracle pls 00905,Oracle数据库存储过程出错了!大神帮忙看下什么问题!急急急!...
  7. 实现土豆网的视频播放
  8. 层次分析法(AHP)
  9. 爆肝三个晚上,成功高仿出Win 11的部分界面【持续更新】【萌新也能看的懂】【开源了,强烈建议收藏】
  10. 关于axure rp 是做什么用的
  11. Wretch超雅虎奇摩成台湾省第一大网站
  12. 冬夜读书示子聿 鉴赏
  13. 中国古代衣食住行 3
  14. Linux高清壁纸软件,十个小众的 Linux 桌面软件
  15. 盲人怎么使用计算机考试,盲人考试怎么答题?11名全盲考生使用盲文试卷高考...
  16. GraphQL Go,graphql基本知识,go-graphql使用
  17. 110.Balanced Binary Tree
  18. 【博学谷学习记录】超强总结,用心分享丨一款钻戒网站的html、css
  19. Mac下用docker安装阿波罗Apollo
  20. 图像处理与机器学习【北交慕课】

热门文章

  1. .NetCore中EFCore for MySql整理(二)
  2. Windows Azure系列公开课 - 第二课:为什么选择Windows Azure(下)
  3. C++ 操作sqlite
  4. iOS开源App整理
  5. 冲刺One之站立会议3 /2015-5-16
  6. Centos6.5 恢复误删的系统面板
  7. 中秋佳节--理解Enum枚举
  8. Android 博客园客户端 (四) 基本功能完成(博客列表和内容、新闻列表和内容、推荐博主)...
  9. 图解 MongoDB 地理位置索引的实现原理
  10. alert 乱码(转 学习)