跪求万年历的c语言源程序~

# include & ltstdio.h & gt

void main()

{

Printf("这个程序找到星期几并打印今年的年历。如果是非法进入,会自动退出:\ n”);

Printf("请输入年、月、日:");

while(1)

{

循环:

// printf("请输入年、月、日:");

int o,p,q;

齐星,意大利,墨西哥,荷兰,中国;

scanf("%d%d%d ",& ampo & amp;p & amp;q);//参数对应年、月、日。

如果(o & lt0 | | p & gt12 | | p & lt;0 | | q & lt0 | | q & gt31) //非法输入判断

{

Printf("非法输入,请按任意键退出\ n ");//非法退出

打破;

}

y = o;

m = p;

d = q;

if(m==1||m==2)

m = m+12;

如果(m & gt12)

y = y-1;

YY = y % 100;

c =(y/100);

w = YY+(YY/4)+(c/4)-2 * c+(26 *(m+1)/10)+d-1;//周计算

齐星= w % 7;

如果(齐星& lt0)

齐星= 7+齐星;//星期修正

If(齐星==0) printf("今天是星期天\ n ");//打印星期

If(齐星==1) printf("今天是星期一\ n ");

If(齐星==2) printf("今天是星期二\ n ");

If(齐星==3) printf("今天是星期三\ n ");

If(齐星==4) printf("今天是星期四\ n ");

If(齐星==5) printf("今天是星期五\ n ");

If(齐星==6) printf("今天是星期六\ n ");

//printf("按任意键继续:\ n ");

//if((n = getchar())= ' \ n ')break;

//goto循环;

//返回();

//printf(" erro ");

int uu//句子

if((y % 4 = = 0 & amp;& ampy%100!=0)||y%400==0) // Off

uu = 1;//飞跃

否则//年

uu = 0;

If(uu==1) //

Printf("%d是闰年:\n ",y);//打印

Else //是

Printf("%d年不是闰年\n ",y);//没有

//闰年

Printf("%d日历打印如下:\n ",y);//打印年历

int i,j,k,PP;

for(I = 1;我& lt13;i++)

{

if(I = = 1 | | | I = = 3 | | I = = 5 | | | I = = 7 | | | I = = 8 | | | | I = = 10 | | | I = = 12)//打印大月份。

{printf("\n %d month: \n\n ",I);

printf(" Day 123456 \ n ");

printf(" ");//20个空格

PP =(YY+(YY/4)+(c/4)-2 * c+(26 *(I+1)/10))% 7;//计算一个月中的某一天,1。

if(PP & lt;0)

PP = 7+PP;

for(j = 0;j & lt6 * ppJ++) //1为空。

printf(" ");

for(j = 1;j & lt32;j++)

{

printf("%-6d ",j);//%-6d左对齐。

if((pp+j)%7==0)

{//换行判断

printf(" \ n ");

printf(" \ n ");

printf(" ");//转行前的空格

}

}

}

if(I = = 4 | | | I = = 6 | | | I = = 9 | | | I = = 11)//打印中间的月份。

{printf("\n %d month: \n\n ",I);

printf(" Day 123456 \ n ");

printf(" ");

PP =(YY+(YY/4)+(c/4)-2 * c+(26 *(I+1)/10))% 7;

if(PP & lt;0)

PP = 7+PP;

for(j = 0;j & lt6 * ppj++)

printf(" ");

for(j = 1;j & lt31;j++)

{

printf("%-6d ",j);

if((pp+j)%7==0)

{

printf(" \ n ");

printf(" \ n ");

printf(" ");

}

}

}

If(i==2) //打印平月。

{printf("\n %d month: \n\n ",I);

printf(" Day 123456 \ n ");

printf(" ");

PP =(YY+(YY/4)+(c/4)-2 * c+(26 *(I+1)/10))% 7;

if(PP & lt;0)

PP = 7+PP;

for(j = 0;j & lt6 * ppj++)

printf(" ");

if(uu==1)

for(j = 1;j & lt30;j++)

{

printf("%-6d ",j);

if((pp+j)%7==0)

{

printf(" \ n ");

printf(" \ n ");

printf(" ");

}

}

如果(uu==0)

for(j = 1;j & lt29;j++)

{

printf("%-6d ",j);

if((pp+j)%7==0)

{

printf(" \ n ");

printf(" \ n ");

printf(" ");

}

}

}

printf(" \ n ");//每月打印后换行。

}

printf(" \ n ");

//printf("按任意键继续:\ n ");

Printf("请输入年、月、日继续:");

转到循环;

//system(" PUUSE ");

}

}