题目

解决代码及点评


/************************************************************************/
/* 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[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("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[i][j*10+k]==0) /*打印空格*/
printf(" ");
else
printf("%4d", DM[i][j*10+k]);/*日期*/
}
}
}
system("pause");
return 0;
}

代码编译以及运行

由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:

1)新建工程

2)选择工程

3)创建完工程如下图:

4)增加文件,右键点击项目

5)在弹出菜单里做以下选择

6)添加文件

7)拷贝代码与运行

程序运行结果

代码下载

http://download.csdn.net/detail/yincheng01/6681845

解压密码:c.itcast.cn






基于visual Studio2013解决C语言竞赛题之1078打印日历的更多相关文章

  1. 基于visual Studio2013解决C语言竞赛题之0603打印素数

     题目

  2. 基于visual Studio2013解决C语言竞赛题之0808打印链表

     题目

  3. 基于visual Studio2013解决C语言竞赛题之1048打印矩阵

      题目 解决代码及点评 /* 48. 找规律填写N×N方阵.如N=8时, 其方阵为: */ #include <stdio.h> #include <stdlib.h& ...

  4. 基于visual Studio2013解决C语言竞赛题之1045打印成绩

       题目 解决代码及点评 /* 功能:用记录来描述一个学生的成绩情况,内容包括:姓名.学号.数学成绩和PASCAL成绩. 要求对一个小组的10个学生的成绩进行统计处理: 1)计算学生的总 ...

  5. 基于visual Studio2013解决C语言竞赛题之1058打印数字

       题目 解决代码及点评 /************************************************************************/ /* 58 ...

  6. 基于visual Studio2013解决C语言竞赛题之1057打印加数

       题目 解决代码及点评 /* 功能: 已知N是正整数, 它可拆写成三个正整数N1.N2和N3之和的形式N=N1+N2+N3. 请编程序打印出满足上式的全部组合,并当N1.N2和N3中至 ...

  7. 基于visual Studio2013解决C语言竞赛题之1071打印工资

        题目 解决代码及点评 /************************************************************************/ /* ...

  8. 基于visual Studio2013解决C语言竞赛题之0523魔方阵

     题目

  9. 基于visual Studio2013解决C语言竞赛题之0518回文数

     题目

随机推荐

  1. iOS 之使用CAShapeLayer中的CAGradientLayer实现圆环的颜色渐变

    本文转载自:http://blog.csdn.net/zhoutao198712/article/details/20864143 在 Github上看到一些进度条的功能,都是通过Core Graph ...

  2. 浅析C++基础知识

    近期想对C++的面试题目进行一下更加详细的整理.事实上认真思考一下C++程序猿的面试,我们能够发现对程序猿的能力的考察总是万变不离当中,这些基础知识主要分为五部分:一. C/C++基础知识 二. C/ ...

  3. aspx.cs上传文件

    aspx.cs文件 using System; using System.Collections.Generic; using System.Linq; using System.Web; using ...

  4. [GDUT 决赛]--GCD,LCM——我是好人(数论)

    Description 众所周知,我是好人!所以不会出太难的题,题意很简单 给你两个数n和m,问你有多少对正整数对最大公约数是n,最小公倍数是m最后友情提供解题代码(我真是太好人了) void sol ...

  5. Javascript常用函数收集(不定期更新)

    str.replace('/正则表达式/','替换内容'); //正则替换str.match('/正则表达式/','替换内容'); //正则匹配 str.indexOf('查找代码'); //查找是否 ...

  6. python中enumerate 函数

    enumerate 函数用于遍历序列中的元素以及它们的下标: >>> for i,j in enumerate(('a','b','c')):  print i,j 0 a 1 b ...

  7. Flask web开发 处理Ajax请求

    本文介绍如何处理ajax请求, 一.处理ajax的post请求 举例一: js代码举例如下: var id = obj.parentNode.parentNode.id; $.post("/ ...

  8. Android学习笔记:多个AsyncTask实例的并发问题

    AsyncTask是Android给开发者提供的一个简单轻量级的多线程类,通过它我们可以很容易新建一个线程让在后台做一些耗时的操作(如IO操作.网络访问等),并在这个过程中更新UI.之所以说它轻量级, ...

  9. 2013年最好的Python开源项目汇总

    2013年Python社区诞生了很多实用的开发工具,这些工具 在一定程度上 可以帮助你节省更多的时间.本文为你汇总了这些工具,它们大部分都是开源的,你还可以通过源码来学习更多的Python开发知识. ...

  10. Storm 配置图文解析

    Storm 配置图文解析 參考阅读:http://www.xiaofateng.com/? p=959 ============================== | sample-topology ...