• 44.利用到数组打月历表


    /*
    m=10;
    ms[12]={31,28,31,30,31,30,31,31,30,31,30,31}
    0 m-1
    */
    #include "stdio.h"
    void main()
    {
    int ms[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    int y,m;//用于存放年月
    int i;//循环变量,用于记住数组的编号范围
    int sum=0;//用于存放1900--输入那个年的某个月的1号为止的总天数
    int w;//记住输入月的1号的星期数,也是1号之前要打的空格数

    printf("请输入年份数:");
    scanf("%d",&y);

    if(y%4==0&&y%100!=0||y%400==0)
    ms[1]=29;

    printf("请输入月份数:");
    scanf("%d",&m);

    //求出1900年--y-1年所有完整年的总天数
    for(i=1900;i<=y-1;i++)
    {
    if(i%4==0&&i%100!=0||i%400==0)
    sum+=366;
    else
    sum+=365;
    }

    //求出y年的0月--m-2月所有完整月的总天数
    for(i=0;i<=m-2;i++)
    {
    sum+=ms[i];
    }

    //再把m月的1号这一天加进去
    sum+=1;

    //求m月1号星期数(也是打印1号之前的空格数)
    w=sum%7;

    printf(" %d年%d月的日历表如下:",y,m);
    printf(" 日 一 二 三 四 五 六 ");

    //先打1号之前的空格数
    for(i=1;i<=w;i++)
    printf(" ");

    //输出m-1月的所有号数
    for(i=1;i<=ms[m-1];i++)
    {
    if(i<10)
    printf("0%d ",i);
    else
    printf("%d ",i);
    if((w+i)%7==0)
    printf(" ");
    }
    }

  • 相关阅读:
    Blink示例程序
    arduino入门笔记
    Opentrains 1519 G——最小圆覆盖
    最小圆覆盖入门
    最小球覆盖——模拟退火&&三分套三分套三分
    DAO,Service,Controller各层之间的关系
    史上最全的SpringMVC学习笔记
    pom.xml
    Tomcat入门指南
    tomcat架构
  • 原文地址:https://www.cnblogs.com/wyj1212/p/9006697.html
Copyright © 2020-2023  润新知