zoukankan      html  css  js  c++  java
  • step1 . day4 C语言基础练习之日历

    学习完基础循环、选择语句,写一个日历检验水准。

    日历核心:

    1.选择基础参照,用来计算总天数和周几的参照(since 1900.1.1,这天是周一)

    2.闰年平年的判断条件及循环结构

    3.计算需要打印月份的天数、从周几开始的补充空格数、循环换行

    代码参照如下,初级版本,有待进一步优化至万年历(1900年之前还没验证)

    #include <stdio.h>

    int main()
    {
    int basic_year = 1900;
    int i,j,k,m;
    int sum = 0;
    int month_day;
    int year,month;
    int check_year,check_month;

    printf("请输入年份:");
    check_year = scanf("%d",&year);
    while(0 == check_year)
    {
    getchar();
    printf("年份输入错误,请重新输入:");
    check_year = scanf("%d",&year);
    }


    printf("请输入月份(1~12):");
    check_month = scanf("%d",&month);
    while(0 == check_month || month < 1 || month > 12)
    {
    getchar();
    printf("月份输入错误,请重新输入(1~12):");
    check_month = scanf("%d",&month);
    }

    for(i=1900; i<year;i++)
    {
    if((i%100!=0) && (i%4==0) || (i%400==0) )
    sum=sum+366;
    else
    sum=sum+365;
    }

    for(j=1;j<=month;j++)
    {
    if(j==1 || j==3 ||j==5 ||j==7 ||j==8 ||j==10 ||j==12)
    {
    sum=sum+31;
    month_day=31;
    }


    else if(j==4 ||j==6 ||j==9 ||j==11)
    {
    sum=sum+30;
    month_day=30;
    }

    else
    {
    if( (year%400==0) || ((year%100!=0) && (year%4==0)) )
    {
    sum=sum+29;
    month_day=29;
    }
    else
    {
    sum=sum+28;
    month_day=28;
    }
    }
    }
    printf("sum=%d ",sum);

    printf("%d年%d月 ",year,month);
    printf("一 二 三 四 五 六 日 ");
    for(k=0;k<((sum-month_day)%7);k++)
    printf(" ");
    for(m=1;m<=month_day;m++)
    {
    if((m+k)%7==0)
    printf("%d ",m);
    else
    printf("%d ",m);
    }

    return 0;
    }

  • 相关阅读:
    windows注册服务
    比特币用户阶层和开发阶层之间的恩怨情仇
    陷门函数Trapdoor Function
    什么是混币、环签名、同态加密、零知识证明
    环签名:打开匿名的大门
    一个数独引发的惨案:零知识证明(Zero-Knowledge Proof)
    firefox浏览器不能使用window.close的解决方案
    Swift编程语言资料合集
    程序员的十大烦恼
    Net上传附件大小控控值(转)
  • 原文地址:https://www.cnblogs.com/huiji12321/p/11111583.html
Copyright © 2011-2022 走看看