C语言编写一个程序,要求输入一个年份,程序判断其是否为闰年

C语言编写一个程序,要求输入一个年份,程序判断其是否为闰年,第1张

#include<stdioh>

void main()

{

    int i,year,n;

    do

    {

        scanf("%d",&year);

        if(((year%4==0)&&(year%100!=0)) ||   year%400==0 )

        {

            printf("yeah\n");

        }

        else if(year==-1)

        {

        }

        else

        {

            printf("no\n");

        }

    }while(year!=-1);

}

不等价,因为判断闰年的标准是:1、能整除4且不能整除100 2、能整除400

你的意思是:

每4年有个闰年1896是闰年,4年后1900也是闰年除以4就是闰年

但严格上讲,"每4年一个闰年"这说法不严谨应该是四年一闰,百年不闰,四百年再闰

为什么呢

1、产生闰年原因:地球绕太阳运行周期为365天5小时48分46秒(合36524219天)即一回归年(tropical year)公历的平年只有365日,比回归年短约02422 日,所余下的时间约为四年累计一天,故四年于2月加1天,使当年的历年长度为366日,这一年就为闰年

2、但是,上面算法又有了一个问题就是024224=09688,比一天还差00322天,每4年差00322天不算多,但每400年就会差了约3天即是说,假如每4年一个闰年,那么每400年就会有100个闰年,然后会多算了3天

所以,就规定了每四百年中要减少三个闰年公历年份是整百数的,必须是400的倍数的才是闰年,不是400的倍数的,虽然是100的倍数,也是平年

综合以上2点,就有了现有的闰年判断标准

能被4整除且不能被100整除的为闰年。如2004年就是闰年,1900年不是闰年。世纪年能被400整除的是闰年,如2000年是闰年,1900年不是闰年。对于数值很大的年份,这年如果能被3200整除,并且能被172800整除则是闰年。如172800年是闰年,86400年不是闰年,因为虽然能被3200整除,但不能被172800整除。

#include <stdioh>

int isLeap (int year) {

return (year%4==0&&year%100!=0)||year%400==0; /闰年规律:年份不能被100整除且能被4整除,年份能同时被100和400整除/

}

int main(void) {

    int year;

    

    printf ("请输入年份:");

    scanf ("%d",&year);

    

    if (isLeap (year))

     printf ("%d年是闰年。\n",year); 

else

printf ("%d年是平年。\n",year);

    return 0;

}

执行结果

2008年是闰年

2017年是平年

1、首先我们点击桌面左下角的开始,打开Visual C++ 60软件。

2、然后我们建立一个空的工程,再建立一个空的C源程序文件。

3、这里主要用到库函数scanf(),调用格式:scanf(“%d”,&n);n为已定义的整形变量。取址符&,分号之类的都不要忘记写上。

4、如果该年份能被100整除,继续判断,如果能被四百整除,则该年份是闰年,否则不是,例如1900不是闰年,2000是闰年。如果该年份不能被100整除,继续判断,如果被4整除,则该年份是闰年,否则不是。例如2002年不是闰年,2004年是闰年。

5、编译,组件文件,生成exe文件运行。按顺序点击工具栏上(如图)的两个按钮,即可运行程序。

6、输入年份1992,不能被100整除,输出是闰年,与实际情况相符合,该程序设计正确。

7、输入1900,能被100整除,输出不是闰年,与实际符合。

工具/材料

ubuntu

gcc + vim

01

开启ubuntu并在指定位置打开一个终端。

02

使用vim创建一个源文件runnianc,并添加宏包含与函数声明,以及创建主函数。

03

首先判断年份能否被100整除。若能,则继续判断能否被400整除。若依然能被400整除则说明是闰年。

04

若不能被100整除,则接着判断能否被4整除。若能则说明是闰年,否则不是闰年。

05

接下来对这个函数进行测试。选取几个数字:2000,1900,1904, 1966,1987。测试代码如下。

06

编译运行后的输出如下,与我们的预期相同,说明编写的程序没有问题。

根据题目给出的条件进行判断即可。

分析:

根据题意,满足闰年的有两个条件:

一个年份如果是4的倍数但不是100的倍数。这个条件又分成两个部分,第一部分是年份是4的倍数,第二部分是年份不是100的倍数。即两个部分需同时满足才是闰年。

这个年份是400的倍数。

第一个条件可以写成:

year % 4 == 0 && year % 100 != 0

year % 4是求year除以4的余数,只要year是4的倍数,那么余数肯定为0。

同理year不是100的倍数,即year除以100的余数不为0。

因为需要同时满足,所以用&&运算符连接这两个部分。

第二个条件可以写成:

year % 400 == 0

因为第一个条件和第二个条件任意满足一个条件皆是闰年,所以用||运算符连接起来。

源码

答案:

#include <stdioh>

int main()

{

    int year;

    scanf("%d", &year);

    if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)

        printf("L");

    else

        printf("N");

    return 0;

}

1、打开Visual Studio编辑器,新建一个C语言文件,在最前面引入标准库文件,然后定义一个main主函数:

2、主函数中先定义一个int型的变量,用来存储用户输入的数字,然后yongscanf控制输入,输入的值传递给a变量,接着判断是否为闰年,判断条件为能被4整除而不能被100整除或者是能被400整除的数均为闰年,最后用printf函数将处理的结果输出:

3、运行程序,在控制台中输入一个年份,比如2020年,控制台输出的结果为2020年是闰年。以上就是用c语言编写判断闰年的方法:

以上就是关于C语言编写一个程序,要求输入一个年份,程序判断其是否为闰年全部的内容,包括:C语言编写一个程序,要求输入一个年份,程序判断其是否为闰年、C语言如何判断是闰年,闰年判断条件、C语言编程计算闰年等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9319039.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存