c语言一年日历程序,c语言日历程序

关于日历程序的设计

1.设计要求;输入一个年份要求输出打印该年每个月的日历。

2.设计思路:要输出某年的日历,先求出该年第一天是星期几;再从1月到12月执行一次循环,

考虑闰年2月29天,月份有大小,天数按星期排列的问题。

日历程序及部分注释

#include

int runnian(int);

/函数申明;

void main()

{

int a[12][42] =

{0}; /定义一个数组

long int days =

0; /定义长整型变量,赋初值为0;days

int

n=1; /定义变量,n=1表示初始第一年;

int

c; /c表每一年的天数;

int p; /表星期;

int x ,y,i,j,m,b;

printf("please input the

year:"); /打印输出

scanf("%6d",&b);

/输入的年份b;

while(n <

b) /循环求b年前的所有天数和;

{

if( runnian( n )

) /调用闰年的函数;

c = 366;

else

c = 365;

days = days + c;

n++;

}

p=days%7; /p为b年第一天的星期;

for(i=0;i<12;i++) /循环12个月份;

{

x=1;

if(i==0||i==2||i==4||i==6||i==7||i==9||i==11)

{

y=0;

for(j=p;j<42;j++)

{

a[i][j]=x++;

if(x>31)

{

y = j+1;

break;

}

}

p=y%7;

}

else

if(i==1&&runnian( b

)) /调用闰年函数;

{

int y=0;

for(j=p;j<42;j++)

{

a[i][j]=x++;

if(x>29)

{

y = j+1;

break;

}

}

p=y%7;

}

else

if(i==1)

{

int y=0;

for(j=p;j<42;j++)

{

a[i][j]=x++;

if(x>28)

{

y = j+1;

break;

}

}

p=y%7;

}

else

{

y=0;

for(j=p;j<42;j++)

{

a[i][j]=x++;

if(x>30)

{

y = j+1;

break;

}

}

p=y%7;

}

}

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

/循环语句执行打印输出;

{

printf("%3dmonth\n",m);/输出打印12个月的月份

printf("MON TUS WED THU FRI SAT

SUN\n");/输出打印星期;

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

{ 两个嵌套循环将每个月按六行七列排列;

for(i=j*7;i

{

if(a[m-1][i]==0)

{

printf(" ");

}

else

{

printf("%3d

",a[m-1][i]);

}

}

printf("\n");

}

}

}

int runnian( int b

) /闰年函数定义;

{

if ((b %4 == 0) && (b %

100 != 0) ||

(b % 400 ==

0) )

return

1; /返回值

else

return 0;

}

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值