C语言 已知某年一月一日是星期几,按照SUN MON TUS WED THU FRI STA的格式输出该年某个月的月历(即输入XXXX/1/1is星期n,x mouth,输出x月的月历)C语言编程 用循环和switch
来源:学生作业帮助网 编辑:六六作业网 时间:2025/01/13 11:23:00
C语言 已知某年一月一日是星期几,按照SUN MON TUS WED THU FRI STA的格式输出该年某个月的月历(即输入XXXX/1/1is星期n,x mouth,输出x月的月历)C语言编程 用循环和switch
C语言 已知某年一月一日是星期几,按照SUN MON TUS WED THU FRI STA的格式输出该年某个月的月历
(即输入XXXX/1/1is星期n,x mouth,输出x月的月历)C语言编程 用循环和switch
C语言 已知某年一月一日是星期几,按照SUN MON TUS WED THU FRI STA的格式输出该年某个月的月历(即输入XXXX/1/1is星期n,x mouth,输出x月的月历)C语言编程 用循环和switch
以下是我以前写的一个万年历系统的一个模块:输入某一年份,然后显示出全年日历,你可以在其中修改满足你的要求-----------
#include <stdio.h>
void main(void)
{
int year,month,day;
//int month=1;
int x;//定义该月的天数
int sum,leap,result;
int a[42]={0};
printf("====>请输入年份:");
scanf("%d",&year);
for(month=1;month<13;month++){
int a[42]={0};
if(month==4||month==6||month==9||month==11)
x=30;
else if(month==2)
{
if(year%400==0||(year%4==0&&year%100!=0))
x=29;
else
x=28;
}
else
x=31;
day=1;
switch(month)
{
case 1:{sum=day; break;}
case 2:{sum=31+day; break;}
case 3:{sum=59+day; break;}
case 4:{sum=90+day; break;}
case 5:{sum=120+day; break;}
case 6:{sum=151+day; break;}
case 7:{sum=181+day; break;}
case 8:{sum=212+day; break;}
case 9:{sum=243+day; break;}
case 10:{sum=273+day;break;}
case 11:{sum=304+day;break;}
case 12:{sum=334+day;break;}
}
if(year%400==0||(year%4==0&&year%100!=0))
leap=1;
else
leap=0;
if(leap==1&&month>2)//如果是闰年并且月份大于2,总天数应该加一天
sum=sum+1;
result=(year-1+(year-1)/4-(year-1)/100+(year-1)/400+sum)%7;
//写入数组
a[result]=1;//定位该月第一天的位置
for(int i=0;i<x;i++)
a[result+i]=i+1;
//输出结果
printf("\n%d %d :",year,month);
printf(" SUN MON TUE WEN THU FRI SAT\n" );
printf("\n");
for(i=0;i<6;i++)//格式化输出,一维变二维输出
{
printf("\t");
for(int j=0;j<7;j++)
printf("%4d",a[7*i+j]);
printf("\n");
}
}
}