去评论
推扬网

彭飞:c语言关于计算闰年的程序

admin
2020/08/12 16:08:06

韩静的回答:

#include<stdio.h> #pragma warning (disable:4996) int? runnian(int n) { if (((n%100!=0) && (n%4==0)) || ( n % 400==0) ) { return 1; } else { return 0; } } int main() { int i = 0; int t = 0; printf("请输入一个年份:"); scanf("%d", &i); t =runnian(i); if (t == 1) { printf("%d? 是闰年\n", i); } else { printf("%d? 不是闰年\n", i); } return 0; } 扩展资料: 判断标准为 1、能整除4且不能整除100。 2、能整除400。 缘由 1、产生闰年原因:地球绕太阳运行周期为365天5小时48分46秒(合365.24219天)即一回归年(tropical year)。公历的平年只有365日,比回归年短约0.2422 日,所余下的时间约为四年累计一天,故四年于2月加1天,使当年的历年长度为366日,这一年就为闰年。 2、上面算法又有了一个问题,就是0.2422*4=0.9688,比一天还差0.0322天,每4年差0.0322天不算多,但每400年就会差了约3天。即是说,假如每4年一个闰年,那么每400年就会有100个闰年,然后会多算了3天。 所以,就规定了每四百年中要减少三个闰年。公历年份是整百数的,必须是400的倍数的才是闰年,不是400的倍数的,虽然是100的倍数,也是平年。

耿子的回答:

#include<stdio.h> #pragma warning (disable:4996) int? runnian(int n) { if (((n%100!=0) && (n%4==0)) || ( n % 400==0) ) { return 1; } else { return 0; } } int main() { int i = 0; int t = 0; printf("请输入一个年份:"); scanf("%d", &i); t =runnian(i); if (t == 1) { printf("%d? 是闰年\n", i); } else { printf("%d? 不是闰年\n", i); } return 0; } 扩展资料: 判断标准为 1、能整除4且不能整除100。 2、能整除400。 缘由 1、产生闰年原因:地球绕太阳运行周期为365天5小时48分46秒(合365.24219天)即一回归年(tropical year)。公历的平年只有365日,比回归年短约0.2422 日,所余下的时间约为四年累计一天,故四年于2月加1天,使当年的历年长度为366日,这一年就为闰年。 2、上面算法又有了一个问题,就是0.2422*4=0.9688,比一天还差0.0322天,每4年差0.0322天不算多,但每400年就会差了约3天。即是说,假如每4年一个闰年,那么每400年就会有100个闰年,然后会多算了3天。 所以,就规定了每四百年中要减少三个闰年。公历年份是整百数的,必须是400的倍数的才是闰年,不是400的倍数的,虽然是100的倍数,也是平年。

杨建丽的回答:

#include "iostream.h" int leapnum; void main(int argc, char* argv[]) { for(int i=2001;i<=2999;i++ ) { if ((i%4==0&&i%100!=0)||i%400==0) { cout<<i<<"leap=1"<<endl; leapnum++; } else { cout<<i<<"leap=0"<<endl; } } cout<<leapnum<<"个闰年"<<endl; } //公元1年1月1日是星期一,闰年是366(二月29天)天平年365天(二月28天) //1,3,5,7,8,10,腊有31天 //((year%4==0&&year%100!=0)||year%400==0)是判断闰年的条件 //先判断是否可以被4整除,如果不可以,不是闰年,如果可以, //继续判断,看是否可以被100整除,如果不可以,则是闰年,如1996. //如果可以被100整除,继续判断,看是否可以被400整除,如果可以则是闰年, //如果不可以,则不是,如1900可以被4整除,继续判断,可以被100整除,继续判断, //不可以被400整除,则不是,2000年则是闰年。 联系方式:zhangzhd@neusoft.com

宋紫琳的回答:

闰年就是能被4整除不能被100整除或者能被400整除的年份,可以使用if语句判断:((year%4==0&&year%100!=0)||year%400==0)。 参考代码: #include?"stdio.h" int?fun(int?year){ if((year%4==0&&year%100!=0)||year%400==0)?return?1; return?0; }? int?main() { int?i,sum=0; for(i=2001;i<=2999;i++) if(fun(i)){ printf("%d?leap=1\n",i); sum++; } else?printf("%d?leap=0\n",i); printf("%d个闰年\n",sum);??????? } /* 运行结果: 2001?leap=0 2002?leap=0 ... 2999?leap=0 242个闰年 */

╱…々約定ル的回答:

这里你是不是写漏了一个 % 号,应该是if( (year % 4 == 0 && year % 100 != 0) || year % 400 == 0)。 判断一个年份是不是闰年的条件是:能被4整除但不能被100整除(所以要用 &&),或者(用 || )能被400整除的数。 下面是语句的解释:&& 表示 ‘与’ 的关系,必须所有条件为真其结果才为真,像这个例子中,需满足year % 4 == 0 和 year % 100 != 0 同时为真 (year % 4 == 0 && year % 100 != 0) 才为真,‘ % ’ 是取余运算符,就是求余数的。 || 表示 ‘或’ 的关系,只要有一个条件为真,他的整个结果都为真了。 对于你说的问题,你要看清条件,是当year % 4 == 0 为真,所以等于 1 当然是假的啦,在‘&&’关系中,因为有一个是假的条件,所以不管后面的是真是假,结果一律都为假了