zoukankan      html  css  js  c++  java
  • C语言经典算法100例-004-年月日判断是年份的第几天

    题目如下:

    输入某年某月某日,判断这一天是这一年的第几天?

    1.分析问题:基本算法为之前月份的天数和加当前天,例如3月8日,需要用1,2月份的总天数加8。 但要考虑特殊情况,如果是闰年,那么2月不再是28天,而是29天,此时如果月份大于2,那么之前月份的天数和则应加1才对。

    2.源代码:

    #include <stdio.h>
    #include <stdlib.h>
    int main()
    {
        int year,month,day;
        int sum;
        int leap;
        printf("Please input the date(Like 1990-10-22)!
    ");
        scanf("%d-%d-%d",&year,&month,&day);
    
        switch(month)
        {
        case 1:
            sum=0;
            break;
        case 2:
            sum=31;
            break;
        case 3:
            sum=59;
            break;
        case 4:
            sum=90;
            break;
        case 5:
            sum=120;
            break;
        case 6:
            sum=151;
            break;
        case 7:
            sum=181;
            break;
        case 8:
            sum=212;
            break;
        case 9:
            sum=243;
            break;
        case 10:
            sum=273;
            break;
        case 11:
            sum=304;
            break;
        case 12:
            sum=334;
            break;
        default:
            printf("Data error
    ");
            return 0;
            break;
        }
        sum+=day;
        leap=year%400==0||(year%4==0&&year%100!=0)?1:0;     //判断是否为闰年 四年一闰;百年不闰,四百年再闰
        sum+=leap==1&&month>2?1:0;                          //是闰年且月份大于2的需要加一天
        printf("This is %d the %dth day!
    ",year,sum);
        return 0;
    }


  • 相关阅读:
    010-1 Socket地址族AddressFamily
    011 Socket定义客户端
    003 win7如何配置adb环境变量
    002 调试工具的具体功能
    001 Nibiru SDK 调试工具介绍
    001 UI介绍
    010 socket定义服务器
    001 Lua相关链接
    000 Lua目录
    深拷贝的、浅拷贝讲解以及示例
  • 原文地址:https://www.cnblogs.com/mrbourne/p/9959518.html
Copyright © 2011-2022 走看看