| 
 
TA的每日心情|  | 开心 2014-6-18 08:29
 | 
|---|
 签到天数: 14 天 [LV.3]偶尔看看II 滴水大师  
 
 
	积分2345 
 | 
 
| 
 题目
 
  
 解决代码及点评
 
 
 
 
 <pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"></pre><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code"><pre code_snippet_id="91880" snippet_file_name="blog_20131202_1_2646179" class="cpp" name="code">/************************************************************************/  /* 78.  打印年历。 要求:每行打印两个月日历。如下图:  一月                        二月   三月                         四月             .                 . .                 . .                 . 十一月                       十二月           思考: 每行打印三个月日历。                                                                      */  /************************************************************************/  #include <stdio.h>    #include <stdlib.h>  int main(void)    {        int a, i, j, n, k, t, w, x, z;        static int DM[12][60];        int m[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};        char wst[] = " Sun Mon Yue Wed Thu Fri Sat   ";                      w = 2; //第一天星期二      for(i=0; i<12; i++)        {            a = 1;            for(j=0; j<6; j++)            {                for(k=0; k<=6; k++)                {                    while(k<w) k=k+1;                    DM[j*10+k] = a;  /*计算i月的第j个星期的星期w的日期为a*/                    a=a+1;                    w = k+1;                    if(w==7) w=0;                    if(a>m) break;                }                if(a>m) break;            }        }        printf("input x(2,3): ");        scanf_s("%d", &x);  //x  为每行显示个数                  for(n=0; n<12/x; n++)        {            t = x*(n)+1;            printf("\n    ");            for(z=1; z<=x; z++)            {                for(k=1; k<=15; k++)                    printf(" ");                printf("%2d", t+z-1);   /*打印月号*/                for(k=0; k<14; k++)                    printf(" ");            }            printf("\n      ");            for(z=0; z<x; z++)      /*横排x个月*/                printf("%s", wst);   /*星期标题*/            for(j=0; j<6; j++)            {                printf("\n  ");                for(i=t-1; i<t+x-1; i++)                {                    printf("   ");                    for(k=0; k<=6; k++)                        if(DM[j*10+k]==0) /*打印空格*/                            printf("    ");                        else                            printf("%4d", DM[j*10+k]);/*日期*/                }            }        }        system("pause");      return 0;    }  </pre><br><br><br></pre></pre></pre>
 
 
 | 
 |