#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语言编程计算闰年等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)