2.4嵌套多重if else 的闰年判断以及bool变量的用法

#include<stdio.h>
#include<stdbool.h>

int main()
{
    int year;
    bool leap; //把leap定义为bool ,则原来的1就是true,0 就是false 
    scanf("%d", &year);
    
    if(year % 4 != 0)
      leap = false;//第一层,不能被4整除,不是闰年。 
    else if(year % 100 != 0)
      leap = true;//第二层,否则,能被4整除,接下来按顺序判断不能被100整除,暂时定为闰年(实际上就是闰年)。 
    else if(year % 400 != 0)
      leap = false;//第三层,否则,不能被4和100整除,看能否被400 整除,不能,不是闰年。 
    else          //第四层,否则, 不能被4和100整除,能被400整除,是闰年。 
      leap = true; 
      if(leap){   //leap == true 和 leap == 1 以及 leap 等价。注意如果用printf %d 输出true ,结果为1. 
          printf("%d is leap", year);
      } else{
          printf("%d is not leap", year);
      }    
      return 0;
}

1.bool是逻辑变量,但是true和false 是逻辑常量。这样做提高可读性。

2.注意,非零的数值(包括负数)赋值给一个逻辑变量,会自动变为1(true)。

3.逻辑变量初始化的值是0。

4.逻辑型变量可以不用头文件,然后以“_Bool”直接定义。

posted @ 2016-08-17 12:44  VRednow  阅读(675)  评论(0编辑  收藏  举报