糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 1000-2000年之间闰年年份 个数以及任意年份之间的闰年年份 个数

1000-2000年之间闰年年份 个数以及任意年份之间的闰年年份 个数

时间:2021-11-12 06:06:07

相关推荐

1000-2000年之间闰年年份 个数以及任意年份之间的闰年年份 个数

1000-2000年之间闰年年份、个数以及任意年份之间的闰年年份、个数

初学C语言的过程中,经常会遇到求年份之间的闰年年份以及总个数,今天就以1000-2000年之间闰年年份、个数为例。

Q:求1000-2000年之间闰年的年份以及闰年个数。

思路:这道题呢,求闰年年份以及闰年个数,那么我们首先就要明白闰年的条件是什么。显然,闰年的条件有两个:1、公历年份可以被4整除但不能被100整除;2、公历年份可以被400整除。

那么就会有同学问了,“为什么不能用公历年份直接除4得到答案呢?”很显然,是不对的,例如2100年,2100可以整除4,也可以整除100,不满足上述闰年条件1;2100不能整除400,所以不能满足上述闰年条件2,但是2100可以整除4,可以看出,要想判断是否为闰年,必须满足上述两个条件之一。

接下来分析闰年满足条件1,我们可以发现“整除4”和“不能整除100”是且的关系,在C语言中表述为“&&”,闰年满足的两个条件之间则为或的关系,在C语言中表述为“||”。

接下来,我们就可以着手写代码了:

1000-2000是一个非常大的范围,判断是否为闰年,我们很容易想到采用“for”语句循环以及“if”语句判断;在这里,我们还要用到C语言运算中的一个算法“&”——取余,若年份除4余数为0且除100余数不为0,可认定为该年份为闰年,同理,年份除400余数为0也可认为该年份为闰年,用C语言则表述为“年份%4= =0&&年份%100!=0||年份%400==0”。

理解到这,剩余的代码就很容易写下去了,源代码如下:

#include <stdio.h>int main(){int i;for (i =1000; i <= 2000; i++){if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0){printf("%d\n", i);}}return 0;}

那么此代码运行输出的结果如下图,

我们可以发现,只有闰年年份,却没有统计个数,我们只需要再定义一个整形变量“count”并且让它在循环里面进行“count++”即可,源代码如下:

#include <stdio.h>int main(){int i, count=0;for (i =1000; i <= 2000; i++){if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0){count++;printf("%d ", i);}}printf("\ncount=%d", count);return 0;}

那么我们可以发现,最后运行出来的结果是243个。

我们可以发现,在求解1000-2000之间闰年的年份以及个数时,采用了定义整形变量i并且进行for循环,初值以及终止条件分别为1000、2000,那么,我们可以将初值以及终止条件进行替换,来达到求解任意年份之间闰年的年份以及个数的目的,此处将不再在进行详细解释,源代码及部分调试结果如下:

#include <stdio.h>int main(){int i, count = 0,a,b;printf("输入起始年份并点击enter键\n");scanf("%d", &a);printf("输入终止年份并点击enter键\n");scanf("%d", &b);for (i = a; i <= b; i++){if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0){count++;printf("%d ", i);}}printf("\ncount=%d", count);return 0;}

通过上述题目的解答,我们不难发现,此类问题只要分析好数学关系,运用循环语句以及判断语句,很容易就可以做出来。

如果觉得《1000-2000年之间闰年年份 个数以及任意年份之间的闰年年份 个数》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。