C语言课程设计
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言课程设计相关的知识,希望对你有一定的参考价值。
参考技术A 自己编了一个不是太符合要求,算法也很笨,但是勉强可以做出来楼主可以看看= =注释我也写了
#include<stdio.h>
void main()
int year,month;//定义年月
int run,num,x,y,i;//辅助变量
int cun[4];//辅助数组,用来存储输入月份及其相邻月份相距1980.1的天数
char c;
printf("please input a year number and month number:");
scanf("%d%c%d",&year,&c,&month);//输入请用题目上相同的输入方式
run=(year-1980)/4+1;//计算闰年个数
num=run*366+(year-1980-run)*365;//计算天数
if((year%4==0||year%400==0)&&year!=1980)//考虑闰年,因为发现1980在这里会多计算一次闰年,所以排除了
switch(month)
case 1:cun[0]=num-31;cun[1]=num;cun[2]=num+31;cun[3]=num+60;break;
case 2:cun[0]=num;cun[1]=num+31;cun[2]=num+60;cun[3]=num+91;break;
case 3:cun[0]=num+31;cun[1]=num+60;cun[2]=num+91;cun[3]=num+121;break;
case 4:cun[0]=num+60;cun[1]=num+91;cun[2]=num+121;cun[3]=num+152;break;
case 5:cun[0]=num+91;cun[1]=num+121;cun[2]=num+152;cun[3]=num+182;break;
case 6:cun[0]=num+121;cun[1]=num+152;cun[2]=num+182;cun[3]=num+213;break;
case 7:cun[0]=num+152;cun[1]=num+182;cun[2]=num+213;cun[3]=num+244;break;
case 8:cun[0]=num+182;cun[1]=num+213;cun[2]=num+244;cun[3]=num+274;break;
case 9:cun[0]=num+213;cun[1]=num+244;cun[2]=num+274;cun[3]=num+305;break;
case 10:cun[0]=num+244;cun[1]=num+274;cun[2]=num+305;cun[3]=num+335;break;
case 11:cun[0]=num+274;cun[1]=num+305;cun[2]=num+335;cun[3]=num+366;break;
case 12:cun[0]=num+305;cun[1]=num+335;cun[2]=num+366;cun[3]=num+397;
else switch(month)
case 1:cun[0]=num-31;cun[1]=num;cun[2]=num+31;cun[3]=num+59;break;
case 2:cun[0]=num;cun[1]=num+31;cun[2]=num+59;cun[3]=num+90;break;
case 3:cun[0]=num+31;cun[1]=num+59;cun[2]=num+90;cun[3]=num+120;break;
case 4:cun[0]=num+59;cun[1]=num+90;cun[2]=num+120;cun[3]=num+151;break;
case 5:cun[0]=num+90;cun[1]=num+120;cun[2]=num+151;cun[3]=num+181;break;
case 6:cun[0]=num+120;cun[1]=num+151;cun[2]=num+181;cun[3]=num+212;break;
case 7:cun[0]=num+151;cun[1]=num+181;cun[2]=num+212;cun[3]=num+243;break;
case 8:cun[0]=num+181;cun[1]=num+212;cun[2]=num+243;cun[3]=num+273;break;
case 9:cun[0]=num+212;cun[1]=num+243;cun[2]=num+273;cun[3]=num+304;break;
case 10:cun[0]=num+243;cun[1]=num+273;cun[2]=num+304;cun[3]=num+334;break;
case 11:cun[0]=num+273;cun[1]=num+304;cun[2]=num+334;cun[3]=num+365;break;
case 12:cun[0]=num+304;cun[1]=num+334;cun[2]=num+365;cun[3]=num+396;
//输出前一个月
x=month-1;
y=year;
if(x==0)y=year-1;x=12;
printf("%d.%d\n",y,x);//年月
printf("SU\tMO\tTU\tWE\tTH\tFR\tSA\n");
x=cun[1]-cun[0];
y=(cun[0]-5)%7;
for(i=0;i<y;i++)printf(" \t");
for(i=1;i<=x;i++)
printf("%d\t",i);
if((i==7-y)||((i-(7-y))%7==0))printf("\n");
printf("\n==================================\n");
//输出当月
x=month;
y=year;
printf("%d.%d\n",y,x);//年月
printf("SU\tMO\tTU\tWE\tTH\tFR\tSA\n");
x=cun[2]-cun[1];
y=(cun[1]-5)%7;
for(i=0;i<y;i++)printf(" \t");//考虑第一行的空格
for(i=1;i<=x;i++)
printf("%d\t",i);
if((i==7-y)||((i-(7-y))%7==0))printf("\n");//星期换行
//输出之后的日期
printf("\n==================================\n");
//输出后一个月
x=month+1;
y=year;
if(x==13)y=year+1;x=1;
printf("%d.%d\n",y,x);//年月
printf("SU\tMO\tTU\tWE\tTH\tFR\tSA\n");
x=cun[3]-cun[2];
y=(cun[2]-5)%7;
for(i=0;i<y;i++)printf(" \t");
for(i=1;i<=x;i++)
printf("%d\t",i);
if((i==7-y)||((i-(7-y))%7==0))printf("\n");
printf("\n==================================\n");
本回答被提问者和网友采纳
以上是关于C语言课程设计的主要内容,如果未能解决你的问题,请参考以下文章