第二星期

来自软件实验室
跳转至: 导航搜索

用linux系统的vi编辑器做好了我的C语言上机作业,好开心好有成就感。我感觉我已经慢慢的适应了这个实验室的节奏,而且有了很大的进步。虽然和其他人比我的进步微不足道,而且差距依然很大,可是我会努力的!


  1. include <stdio.h>

int main () {

   int year,N,s,qi,i,j,h,g,b,k;
   int month[13]={0,31,0,31,30,31,30,31,31,30,31,30,31};   //把每月天数存储在数组month[]中
   printf("请输入年份\n");
   scanf("%d",&year);                 //输入年份
   if(year%4==0&&year%100!=0||year%400==0)       // 判断这一年的二月有多少天并对数组month[2]重新赋值
       month[2]=29;
   else  month[2]=28;
   N=(year-1)*365+(year-1)/4-(year-1)/100+(year-1)/400;  //计算到去年年底共有多少天,注意闰年和平年
   for (i=1;i<13;i++)   //for循环12个月份
   {   k=1;
       s=0;
       for(j=0;j<i;j++)
            k=k+month[j];  
       s=N+k;               //计算到这一天共有多少天
       printf("\n%d月\n",i);   //日历格式,用printf固定
       printf("____________________________\n");
       printf("  日  一  二  三  四  五  六  \n ");
       qi=s%7;      //总天数对7取余,从余数判断每月一号是星期几
       
       for(h=1;h<=(4*qi-1);h++)  //用空格让日期与月份对应起来
                printf(" ");
       for(g=1;g<=month[i];g++)
       {                         
            printf("%4d",g);  //依次输出本月日期,天数由数组得
            b=qi+g;
            if(b%7==0)      //如果qi+g是七的倍数,则换行
                printf("\n");
       }
   }
  

}