实训3.2——判断闰年

教学录像 光盘\chap3\实训3.2——判断闰年

年数中分为平年或闰年,编写程序,判断输入年数是闰年还是平年,闰年输出为1,平年输出为0。

1. 需求分析

分析目标需求,程序中需要做到如下几条。

需求1:输入年数。

需求2:使用逻辑运算符判断输入的年数是否为闰年。

2. 技术应用

根据C语言标准以及开发平台版本,完善各个需求模块。

对于需求1,使用scanf函数接收输入年数。

对于需求2,根据闰年判断公式:((year%4 ==0) &&(year%100 !=0)) || (year%400 ==0)。

通过上述分析,写出完整的程序如下。

程序清单3.2:CalculateLeapYear.c

          01   #include<stdio.h>
          02   main()
          03   {
          04       unsigned int year=0;
          05       int res=0;
          06       printf("请输入年份:");
          07       scanf("%d", &year);                                   //输入要判断的年份
          08       res=((year%4==0)&&(year%100! =0))||(year%400==0);      //闰年判断
          09       printf("res=1是闰年\nres=0是平年\n");                   //打印信息
          10       printf("结果是:\nres=%d\n", res);                         //输出判断结果
          11   }

程序第4行定义了unsigned int型变量year用于存储输入的年份,由于年份不可能出现负值,因此程序使用了unsigned int型变量year。程序运行时输入年份并按下Enter键,输出结果为:

请输入年份:2009

res =1是闰年

res =0是平年

结果是:

res = 0

程序使用了算术运算符、关系运算符和逻辑运算符相结合判断是闰年还是平年,体现了逻辑运算符在实际工程中的应用。

随·堂·实·训3.2

进一步判断输入年数是否属于1900—2020这个年历段,如果是则输出1,否则输出0。

提示:

(1)使用逻辑运算符判断1900<year<2020,注意C语言中的逻辑判断与数学表达的不同,这里应使用1900<year && year<2020的方式。

(2)定义另外一个变量,用于记录提示步骤1中逻辑表达式的值。

如表3-3、表3-4所示为逻辑运算的逻辑表和真值表(以a和b作为操作对象)。

表3-3 逻辑运算的逻辑表

表3-4 逻辑运算的真值表