打印万年历的c语言程序,c语言打印万年历用数组

满意答案

02ae427d08e371d7e90d5b995e828d6d.png

jing100710

推荐于 2017.12.16

02ae427d08e371d7e90d5b995e828d6d.png

采纳率:56%    等级:8

已帮助:211人

#include 

int main()

{

int a, i, j, n, k, t, w, x, y, z;

static int d[13][78];

int m[14] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

char wst[] = " Sun Mon Yue Wed Thu Fri Sat   ";

printf("输入年份: ");

scanf("%d", &y);

if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0)  /*闰年的二月为29天*/

m[2] = 29;

w = (y + (y - 1) / 4 - (y - 1) / 100 + (y - 1) / 400) % 7; /*计算y年元旦为星期w*/

for (i = 1; i <= 12; i++)

{

a = 1;

for (j = 1; j <= 6; j++)

{

for (k = 0; k <= 6; k++)

{

while (k

d[i][j * 10 + k] = a;  /*计算i月的第j个星期的星期w的日期为a*/

a = a + 1;

w = k + 1;

if (w == 7) w = 0;

if (a>m[i]) break;

}

if (a>m[i]) break;

}

}

printf("输入每行显示几个月份(1,2,3,4,5,6): ");

scanf("%d", &x);

for (k = 1; k <= 16 * x - 3; k++)

printf(" ");

printf("=====%d=====\n", y);   /*打印年号*/

for (n = 1; n <= 12 / x; n++)

{

t = x*(n - 1) + 1;

printf("\n    ");

for (z = 1; z <= x; z++)

{

for (k = 1; k <= 15; k++)

printf(" ");

printf("%2d", t + z - 1);   /*打印月号*/

for (k = 1; k <= 14; k++)

printf(" ");

}

printf("\n      ");

for (z = 1; z <= x; z++)      /*按一横排x个月格式打印*/

printf("%s", wst);   /*打印星期标题*/

for (j = 1; j <= 6; j++)

{

printf("\n  ");

for (i = t; i <= t + x - 1; i++)

{

printf("   ");

for (k = 0; k <= 6; k++)

if (d[i][j * 10 + k] == 0) /*空缺日期位置打印空格*/

printf("    ");

else

printf("%4d", d[i][j * 10 + k]);/*打印日期*/

}

}

}

return 0;

}

输入示例:

2016按回车

2(或者输入1或3)按回车

00分享举报

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值