关键是算那一年的第一天是周几
给你个基本算法,一年是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=0i<yi++)
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=0i<12i++)
{
printf("周几英文的打印")
for(j=0j<kj++)
printf("一般是四个空格,就是月份前面空缺的打印")
for(j=1j<=mo[i]j++)
{
printf("%4d",j)
k++
if((k+j)%7==0)
printf("\n")
}
k%=7
if(k!=0)
printf("\n")
}
}
如果像你那样,感觉需要赋值一个大一点的数组,在吧数组打印出来更好,呵呵
2、然后就开始写主程序,首先用scanf得到一个年份。
3、在判断这个年份是平年还是闰年后用printf在CMD中打印出来。
4、在编写完成后,在Notepad++界面下按下F5,d出输入框。
5、cmd /k gcc -o "$(CURRENT_DIRECTORY)\$(NAME_PART).exe""$(FULL_CURRENT_PATH)" &&CLS &&"$(CURRENT_DIRECTORY)\$(NAME_PART).exe" &PAUSE &EXIT。在输入框例输入后运行。
6、点击运行,会d出CMD,在里面输入年份后回车就完成了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)