此题不是很难,我会前三个
关键是算那一年的第一天是周几
给你个基本算法,一年是365天,闰年366天
364是7的倍数,这样一年多出一天,中间多少个闰年,在加上相应的天数即可
400年多出来的天数是400+97=497也是7的倍数,那么400年一轮回,这样就算400年以内的即可
一个子函数,返回这一年的第一天是周几,很好做
int ye(int year)
{
int y=year%400;
int day=y;
int i;
for(i=0;i<y;i++)
if(闰年判断)
day++;
return day%7;
}
做一个月份天数的全局数组
int mo[12]={31,28,31,30,31,30,31,31,30,31,30,31};
需要时用一个if判断闰年改变m0[1]的值是28还是29
打印子函数,有一个小技巧,就是每个月前面的空缺部分,这个1月份是ye子函数的返回值,后面的你看和前面月份是不是重合啊,吧这个记录下来在下一月份用即可
1 2
3 4
这样月份排列更好打印一些,你的那个截图有点麻烦
int pr(int year)
{
int k=ye(year);
int i,j,;
if(闰年判断)
mo[1]=29;
else
mo[1]=28;
for(i=0;i<12;i++)
{
printf("周几英文的打印");
for(j=0;j<k;j++)
printf("一般是四个空格,就是月份前面空缺的打印");
for(j=1;j<=mo[i];j++)
{
printf("%4d",j);
k++;
if((k+j)%7==0)
printf("\n");
}
k%=7;
if(k!=0)
printf("\n");
}
}
如果像你那样,感觉需要赋值一个大一点的数组,在吧数组打印出来更好,呵呵
C语言中的头文件timeh中定义了库函数clock(),它返回的是从程序运行开始算起的时间,一时钟周期为单位,timeh还定义了符号:CLOCKS_PER_SEC,即一秒钟的时钟周期。这样就简单了,在头文件中加入#include<timeh>,在程序main()主函数的开头定义long now=0;并给把clock()赋值给now,即now=clock();记录程序开始时的时间,clock()会继续增加,但now已经确定为开始那一时刻clock()的值,在程序结尾,算式clock()-now就是程序执行所需的时间,但是是以时钟周期为单位的,如果想得到以秒为单位的时间只要输出(clock()-now)/CLOCKS_PER_SEC就是了,即在程序结尾添加
printf("%lf",(clock()-now)/CLOCKS_PER_SEC);就可以了。
以上就是关于C语言编写 年历显示程序全部的内容,包括:C语言编写 年历显示程序、怎样用c语言设计计算程序执行的时间、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)