C语言程序设计;"已知2000年1月1日为星期六,请输入任一年的年份后,打印该年的年历" 怎么设计啊,速求老师
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/25 23:10:40
C语言程序设计;"已知2000年1月1日为星期六,请输入任一年的年份后,打印该年的年历" 怎么设计啊,速求老师
C语言程序设计;"已知2000年1月1日为星期六,请输入任一年的年份后,打印该年的年历" 怎么设计啊,速求老师
C语言程序设计;"已知2000年1月1日为星期六,请输入任一年的年份后,打印该年的年历" 怎么设计啊,速求老师
C语言程序如下:
#include<stdio.h>
#define YES 1 /* 定义符号常数“是” */
#define NO 0 /* 定义符号常数“否” */
/* 函数 isleap(): 判断某年是否闰年 */
int isleap(int year)
{
int leap = NO;
if((year%4==0 && year%100!=0 )|| year%400==0)
leap = YES;
return leap;
}
/* 函数 week_of_newyears_day(): 求元旦是星期几 */
int week_of_newyears_day(int year)
{
int n = year-1900;
n = n+(n-1)/4+1;
n = n%7;
return n;
}
int main(int argc,char *argv[])
{
int year, month, day, weekday, len_of_month, i;
printf("\n请输入某年年份: ");
scanf("%d",&year);
printf("\n请输入某年1月1日:");
scanf("%d",&weekday);
/*因为你的要求是已知2000年1月1日是星期六,所以这里不用week_of_newyears_day去求星期六了*/
/*weekday = week_of_newyears_day(year); 求元旦是星期几 */
printf("\n\n\n %d年\n",year); /* 打印年份 */
for(month=1; month<=12;month=month+1) /* 打印12个月的月历 */
{
printf("\n%d月份\n",month);
printf("------------------------------------------------------\n");
printf("星期日 星期一 星期二 星期三 星期四 星期五 星期六\n");
printf("------------------------------------------------------\n");
for(i=0;i<weekday;i=i+1) /* 找当月1日的打印位置 */
printf(" ");
if(month==4 || month== 6 || month==9 || month==11)
len_of_month = 30;
else if(month==2)
{
if(isleap(year))
len_of_month = 29;
else
len_of_month = 28;
}
else
len_of_month = 31;
for(day=1;day<=len_of_month;day=day+1)/* 打印当月日期 */
{
printf(" %2d ",day);
weekday = weekday+1;
if(weekday==7) /* 打满一星期应换行 */
{
weekday = 0;
printf("\n");
}
}
printf("\n"); /* 打完一月应换行 */
}
return 0;
}
运行效果如图