////三. 枚举
////枚举:就是一一列举,把可能的取值一一列举。
////比如生活中:
////1.一周的星期一到星期日是有限的7天,可以一一列举。
////2.性别有:男、女、保密,也可以一一列举。
////2.月份有12个月,也可以一一列举
////这就可以使用枚举了。
////————1.枚举类型的定义
//enum Day//星期
//{
// Mon,
// Tues,
// Wed,
// Thur,
// Fri,
// Sat,
// Sun
//};
//enum Sex//性别
//{
// MALE,
// FEMALE,
// SECRET
//};
//enum Color//颜色
//{
// RED,
// GREEN,
// BLUE,
//};
////以上定义的 enum Day , enum Sex , enum Color 都是枚举类型。
////{}中的内容是枚举类型的可能取值,也叫 枚举常量 。
////————2.枚举变量赋值只可以用枚举常量
//enum Day
//{
// Mon,
// Tues,
// Wed,
// Thur,
// Fri,
// Sat,
// Sun
//};
//int main()
//{
// enum Day d = Fri;
// return 0;
//}
////这些可能取值都是有值的,默认从0开始,一次递增1,在定义 枚举常量的时候
//// 也可以赋初值,比如下面的枚举类型,red被赋值1,后面的就会依次递增1。
////例如:
//enum Color//颜色
//{
// red= 1,
// green,
// blue,
//};
//int main()
//{
// printf(“%dn”,red);
// printf(“%dn”, green);
// printf(“%dn”, blue);
// return 0;
//}//打印结果为1 2 3
////////————————3.枚举的优点
////为什么使用枚举?
////我们可以使用 #define 定义常量,为什么非要使用枚举?
////答:#define 定义常量时,每定义一个常量就要写一次#define,可读性不高,维护性太低
////枚举的优点:
////1. 增加代码的可读性(能让人快速理解、轻松维护、容易扩展)和可维护性(解决问题效率的快慢)
////2. 和#define定义的标识符比较枚举有类型检查(比如; enum Color clr = green,green有对应的值,假设为1,但是 ),更加严谨。
////3. 防止了命名污染(封装)
////4. 便于调试
////5. 使用方便,一次可以定义多个常量
//////test.c文件————(预处理)———》编译————》链接————》生成.exe的文件
////在预处理阶段,代码会发生如下变化:
//#define M 100;
//void main()
//{
// int n = M;
//}
////就会变成
//void main()
//{
// int n = 100;//M被100替换,#define代码显示
//}
////然后对代码进行调试,对可执行程(.exe)序进行调试,调试在预处理之后。
////调试的代码其实是
//void main()
//{
// int n = 100;
//}
////这样的代码翻译成二进制指令的时候调试,即不能很好的观测到与M相关的值的。
////而枚举类型并不是替换值,如果在代码中我们用到了枚举类型,在调试的时候依然可以观察到这些相关的值的,所以枚举相对于#define更便于调试
////而对于宏(#define)来说其在预处理阶段就替换了。代码就消失了,只是把值赋了过来。导致调试时的代码与所见代码并不相同。
////#define的变量没有类型,而枚举类型有类型
//////4.————枚举的使用
//enum Color//颜色
//{
// RED = 1,
// GREEN = 2,
// BLUE = 4
//};
//enum Color clr = GREEN;/服务器托管网/只能拿枚举常量给枚举变量赋值,才不会出现类型的差异。
//clr = 5;
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, ht服务器托管网tp://www.fwqtg.net
变体问题指的是提问的方式不一样了,但是解决问题的方法还是用斐波那契数列来解。——写在前面的话。 一、变体1-兔子问题 1.问题描述 第一个月,有一对未成熟的兔子 第二个月上述的一对兔子成熟 第三个月,他们能产下一对小兔子 所有兔子遵循相同规律,求第n个月的兔子…