zoukankan      html  css  js  c++  java
  • 年份月数天数

    问题:

      编写程序,使之所给的年份和月份,按照万年历的算法获知该年该月的天数,并输出结果。要求程序能反复运行,直至键入的年份和月份分别为2100年和12月为止。

    分析:

      程序要求输入年份月份,输出该月的天数,应主要考虑闰年,闰年的2月有29天,非闰年的2月只有28天。按通常历法,每四年有一个闰年,那么每400年就有100个闰年,但这种算法有误差积累,年数多了就不准。所谓万年历是指使用一万年都能保持准确的历法,根据万年历的算法,每400年只能有97个闰年,不妨假设程序中的年份取1701年至2100年。可规定:在这400年中,凡能被4整除而不能被100整除的年份(有100-4=96),加上能被400整除的年份(1个,即2000年),均为闰年,其余都是非闰年。

     1 #include<stdio.h>
     2 int main()
     3 {
     4     int years,months,days;
     5     printf("请输入年份和相应的月份:");
     6     scanf("%d,%d",&years,&months);
     7     switch(months)
     8     {
     9         case 1:
    10         case 3:
    11         case 5:
    12         case 7:
    13         case 8:
    14         case 10:
    15         case 12:
    16             days=31;
    17             break;
    18         case 4:
    19         case 6:
    20         case 9:
    21         case 11:
    22             days=30;
    23             break;
    24         case 2:
    25             if((years%4==0&&years%100!=0)||(years%400==0))
    26                 days=29;
    27             else 
    28                 days=28;
    29     }
    30     printf("
    %d年%d月有%d天!
    ",years,months,days);
    31 }
    32 
    33 /*#include<stdio.h>
    34 int main(){
    35     int year,month,days;
    36     do{
    37         do{
    38             printf("请输入您想查询的年份和月份:");
    39             scanf("%d %d",&year,&month);
    40         }while(!((year>=1701&&year<=2100)&&(month>=1&&month<=12)));
    41         if(!(year==2100&&month==12)){
    42             switch(month)
    43             {
    44                 case 1:
    45                 case 3:
    46                 case 5:
    47                 case 7:
    48                 case 8:
    49                 case 10:
    50                 case 12:
    51                     days=31;
    52                     break;
    53                 case 4:
    54                 case 6:
    55                 case 9:
    56                 case 11:
    57                     days=30;
    58                     break;
    59                 case 2:
    60                     if(year%4==0&&year%100!=0||year%400==0)//判断是否为闰年
    61                         days=29;
    62                     else
    63                         days=28; 
    64             }
    65             printf("
    %d的%d月有%d天
    
    ",year,month,days);
    66         }
    67     }while(!(year==2100&&month==12));
    68     return 0;
    69 }*/


      







  • 相关阅读:
    DEDECMS里面DEDE函数解析
    dede数据库类使用方法 $dsql
    DEDE数据库语句 DEDESQL命令批量替换 SQL执行语句
    织梦DedeCms网站更换域名后文章图片路径批量修改
    DSP using MATLAB 示例 Example3.12
    DSP using MATLAB 示例 Example3.11
    DSP using MATLAB 示例 Example3.10
    DSP using MATLAB 示例Example3.9
    DSP using MATLAB 示例Example3.8
    DSP using MATLAB 示例Example3.7
  • 原文地址:https://www.cnblogs.com/geziyu/p/8734908.html
Copyright © 2011-2022 走看看