题目要求
编写C语言程序.实现输出1000年——2000年之间的闰年.
算法分析
我们要想用C语言程序输出1000年——2000年之间的闰年,我们只需判断某个年份是否闰年,然后循环1000次就可以了.
而判断某个年份是否闰年,需要两个条件:
1.该年份可以被4整除但不能被100整除.
2.该年份可以被400整除.
算法总结
本题算法极其简单,我就再唠叨一遍,这个程序分为两步走:
一、判断某个年份是否闰年.
二、循环判断1000次,遇到闰年输出.
判断闰年需要两个条件:
1.该年份可以被4整除但不能被100整除
2.该年份可以被400整除.
算法转程序
我们先来实现第一步:判断某个年份是否闰年.
为了提高代码的重复利用性,我们把第一步要做的事情封装成一个简单的函数.
首先我们来思考,这个函数的原型.
函数返回值:因为外部程序需要一个值来判断是否闰年,因此必须得有返回值。我们就假定为如果是闰年,该函数返回1;不是闰年返回0.返回值类型为int.
函数名:这个我们就起为IsLeapYear吧!
函数参数:我们需要判断某个年份是否闰年,我们肯定需要接受一个年份的形式参数.我们就设它为y,类型为unsigned int.
最终的函数原型:int IsLeapYear(unsigned int y);
然后我们开始为这个函数填充代码.
(因为代码实在是太简单了,我就直接贴出来吧!)
核心代码如下:
int IsLeapYear(unsigned int y){ //y能被4整除但不能被100整除 或 y能被400整除 if(((y%4==0)&&(y%100!=0))||(y%400==0)){ return 1; //闰年 }else{ return 0; //非闰年 } }
第二步,让这个函数循环跑起来,输出闰年.
(这个代码也是简单的不行,我还是直接贴出来吧!)
核心代码
int i = 0; //定义一个循环变量,并初始化为0. //初始化为1000,当i小于等于2000时进入循环体,每循环一次i自增1 for(i=1000;i<=2000;i++){ //如果i是闰年 if(IsLeapYear(i)){ //输出i printf("%d ",i); } }
完整代码
#include<stdio.h> #include<stdlib> //自定义一个判断闰年的函数 int IsLeapYear(unsigned int y){ //y能被4整除但不能被100整除 或者 y能被400整除 if(((y%4==0)&&(y%100!=0))||(y%400==0)){ return 1; //闰年 }else{ return 0; //非闰年 } } int main(){ //修改控制台字体颜色为绿色 system("color 2"); //定义一个循环变量,并初始化为0. int i = 0; //初始化为1000,当i小于等于2000时进入循环体,每循环一次i自增1 for(i=1000;i<=2000;i++){ //如果i是闰年 if(IsLeapYear(i)){ //输出i printf("%d ",i); } } return 0; }本文来自于 高小调博客-(http://gaoxiaodiao.com),如需转载,请注明出处.