#pragma mark-BOOL
类型
// 作用:用来表示非真即假的数据类型,( 1 字节)
// 存储的数据: YES 和 NO
/*
YES (真) ==1 ; NO (假) ==0 ;
将人能够识别的标识符和计算机能够识别的数字结合起来
*/
// 定义 BOOL 类型的变量
// BOOL isGril=NO;//NO
// BOOL isBoy=YES;//YES
// 输出 bool 类型的变量使用 %d
//printf("%d,%d",isGril,isBoy);
#pragma mark- 关系运算符
// 运算符: >,<,>=,<=,==,!=
// 关系表达式:关系运算符组成的式子叫做关系表达式,结果为 bool 类型数据。
// 注:判断两个数是否相等,要用双等号 “==” ,而非 “=”
// int m=5,n=10;
// 大于 >
// BOOL result = m > n;
// printf("%d\n",result);
//
// 小于 <
// result=m<n;
// printf("%d\n",result);
//
// 大于等于 >=
// result = m<= n;
// printf("%d\n",result);
//
// 等于 ==
// result = m == n;
// printf("%d\n",result);
//
// 不等于 !=
// result= m!=n;
// printf("%d\n",result);
#pragma mark- 逻辑运算符
/*
&& ( 逻辑与 ) :逻辑与运算符 2 边同时为真,整个逻辑表达式的结果为真。
|| ( 逻辑或):逻辑或运算符 2 边的表达式同时为假,整个逻辑表达式结果为假。
! (逻辑非):原有为真,非厚为假;原来为假,非厚为真。
注:逻辑与与逻辑或之间的短路现象。
&& 短路现象:如果运算符左边的表达式为假,则不会判断右边。
|| 短路现象:如果运算符左边的表达式为真,则不会判读右边。
*/
// 逻辑运算
//1. 逻辑与 && ,并且的关系
// int i=3,j=5,k=7;
// BOOL result=0;
// result=(i<=j) && (j!=k);
// printf("%d\n",result);
//2. 逻辑或 || ,或者的关系
// result = (j==k) || (j<k);
// printf("%d\n",result);
//3. 逻辑非,! 颠倒是非
// result=!(i!=k);
// printf("%d\n",result);
// 短路现象
// 逻辑与的短路现象, && 左侧为假,右侧则不参与运算
// int c=0;
// result = i>k && ++c;
// printf("c==%d\n",c);
// 逻辑或的短路现场, || 左侧为真,右侧则不参与运算
// result=(i+k)>=j || ++c;
// printf("c==%d\n",c);
#pragma mark- 分支语句
//c 语言的顺序结果
//1. 顺序结构, main 函数是程序入口,程序执行从上往下,从左至右;
//2. 分支结构,程序执行到某个位置,进行条件判断,根据不同的结果,执行不同的操作;
//3. 循环结构,程序执行到某个位置,反复执行某个位置。
//if 语句
// 原理:根据不同的条件,执行不同的分支程序段。
//if 的第一种形式
// if( 条件表达式 )
// {
// 语句 1;
// }
// 注:先判断条件表达式是否为真,为真则执行大括号中的语句,为假则不执行。
// int count=0;
// int noSee=1;
// printf(" 老公,给我买个包子 :\n");
// scanf("%d",&noSee);
// if (noSee==0) {
// printf(" 请输入你要买的包子数 :\n");
// scanf("%d",&count);
// printf(" 我买到 %d 包子 ",count);
// return 0;
// }
// printf(" 我没有买到包子 ");
// int count=0;// 包子数量
// int noSee=0;// 没有看到
// printf(" 老公,看到卖包子的没有(看到 / 没看到) :");
// scanf("%d",&noSee);
// if (noSee==1) {
// count=1;
// }
// printf(" 包子的数量: %d",count);
// float score=0.0;// 考试成绩
// printf(" 你今天考了多少分 :");
// scanf("%f",&score);
// if (score==100)
// {
// printf(" 真棒,么么哒 \n");
// }
// if (score!=100)
// {
// printf(" 弄死你 \n");
// }
// 练习:输入一个字符,判断是不是 m, 如果是,输出 “ 男性 “ ,不是 , 输出 " 女性 " 。
// char sex=0;
// printf(" 请输入你的性别 :");
// scanf("%c",&sex);
// if (sex=='m')
// {
// printf(" 男性 \n");
// }
// else
// {
// printf(" 女性 \n");
// }
// int money=0;
// printf(" 我要交停车费 ");
// scanf("%d",&money);
// if (money==10)
// {
// printf(" 我今天交了 10 元的停车费 \n");
// }
// printf(" 吃早餐 \n");
// printf(" 去上班 \n");
// 第二种形式
// 语法:
// if ( 条件表达式 ) {
// 语句 1;
// }
// else
// {
// 语句 2;
// }
// 原理:
// 先判断条件表达式,如果条件表达式为真,执行语句 1 ,如果为假,执行语句 2 。
// 输入 2 个整形的数, a1 , a2; 获取他们两者中的最大值,并输出。
// int a1=0,a2=0;
// printf(" 请输入两者中的最大值 :");
// scanf("%d %d",&a1,&a2);
// if (a1>a2) {
// printf(" 最大值: %d\n",a1);
// }
// else
// {
// printf(" 最大值: %d\n",a2);
// }
// 练习:判断年龄是否在【 18 , 38 】范围,如果在,则显示 " 是我的菜 " ,如果不在,显示,是别人的菜。身高在【 160 , 170 】之间;如果身高满足,这是我的菜,如果身高不满足,这不是我的菜,太挫了。
// int age=0;
// printf(" 请输入要判读的年龄 :");
// scanf("%d",&age);
// if (age>=18 && age<=38) {
// printf(" 是我的菜 \n");
// }
// else
// {
// printf(" 不是我的菜 \n");
// }
// int age=0,high=0;
// printf(" 请输入要判读的年龄和身高 :");
// scanf("%d %d",&age,&high);
// if (age>=18 && age<=38)
// {
// if (high>=160 && high<=170)
// {
// printf(" 是我的菜 \n");
// }
// else
// {
// printf(" 不是我的菜,太挫了 \n");
// }
//
// }
// else
// {
// printf(" 不是我的菜 \n");
// }
// 练习:判断年份是不是闰年
// 满足闰年的条件是:
//1. 能被 400 整除 , 2. 能被 4 整除,但是不能被 100 整除。
// int year=0;
// printf(" 请输入年份 :");
// scanf("%d",&year);
// if (year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)) {
// printf("%d 是闰年 ",year);
// }
// else{
// printf("%d 不是闰年 ",year);
// }
#pragma mark- 条件运算符 ? :
// 三目运算符
// 格式:条件表达式? 表达式 1: 表达式 2;
// 原理:先判断条件表达式,如果成立,返回表达式 1 ,不成立,返回表达式 2 。
// int num1=5,num2=10;
//int max=0;
// 把 num1 和 num2 中的最大值,赋值给 max
// if(num1>num2)
// {
// max=num1;
// }
// else
// {
// max=num2;
// }
// printf("max=%d\n",max);
// max=num1 > num2 ? num1 : num2;
// printf("max=%d\n",max);
// int min=0;
// min= num1 < num2 ? num1 : num2;
// printf("min=%d\n",min);
// 思考并输出:
// 练习 : 请输入 3 个数,求三个数的最大值,和最小值
// int num1=0,num2=0,num3=0;
// int max=0,min=0;
// printf(" 请输入 3 个数字 :");
// scanf("%d %d %d",&num1,&num2,&num3);
// max=(num1>num2 ? num1 : num2) > num3 ? (num1>num2 ? num1 : num2) :num3;
// min=(num1<num2 ? num1 : num2) < num3 ? (num1<num2 ? num1 : num2) :num3;
// max=num1 > num2 ? num1 : num2;
// max= max > num3 ? max : num3;
// max=num1 > num2 ? (num1 > num3 ? num1 : num3):(num2 > num3 ? num2 : num3);
//
// printf("max=%d\n",max);
//printf("min=%d\n",min);
// if 的第三种形式
// if ( 条件表达式 1) {
// 语句 1;
// }
// else if ( 条件表达式 2) {
// 语句 2;
// }
// else
// {
// 语句 3;
// }
// 原理:先判断条件表达式 1 ,如果成立,执行语句 1 ,如果不成立,在判断条件表达式 2 ,如果成立,执行语句 2 ,如果不成立,就执行语句 3 。
// 注:这种结构,必须以 if 开头,以 else 结尾,中间写 else if ,并且 else if 可以有多个。
/*
如果从控制台输入一个成绩,如果成绩在 80-100 之间,则输出优秀,如果成绩在 60-80 分之间,则输出良好,否则就输出不及格。
*/
// float score=0;
// printf(" 请输入成绩 :\n");
// scanf("%f",&score);
// if (score > 80 && score <= 100) {
// printf(" 优秀 \n");
// }
// else if(score>=60 && score < 80)
// {
// printf(" 良好 \n");
// }
// else
// {
// printf(" 不及格 \n");
// }
// char letter=0;
// printf(" 请输入一个字符 :\n");
// scanf("%c",&letter);
// if (letter >= '0' && letter <= '9') {
// printf("this is digital\n");
// }
// else if (letter >= 'A' && letter <= 'Z') {
// printf("this is capital letter\n");
// }
// else if(letter >= 'a' && letter <= 'z')
// {
// printf("this is letter\n");
// }
// else
// {
// printf("other\n");
// }
#pragma mark-swith 语句
// 语法
// switch ( 整形表达式 ) {
// case 值 1:
// 执行语句 ;
// break;
// case 值 2:
// 执行语句 ;
// break;
// case ..:
// ...
// default:
// break;
// }
// int number=0;// 存储分机号码
// printf(" 请输入分机号码 :801( 教学部 ) 802( 市场部 ) 803 (职业规划部 ) 804( 总经理 ):");
// scanf("%d",&number);
// switch (number) {
// case 801:
// printf(" 教学部 \n");
// break;
// case 802:
// printf(" 市场部 \n");
// break;
// case 803:
// printf(" 职业规划部 \n");
// break;
// case 804:
// printf(" 总经理 \n");
// break;
// default:
// printf(" 你丫的到底找谁 !\n");
// break;
// }
//case 后只能为整形常量或者整形常量表达式
//case 分支中要加 break ; break 的作用是结束当前分支,跳出 swith
//default 是如果没有匹配到任何的 case 分支,执行 default
// 练习 : 从控制台输入 1-4 ,打印出春夏秋冬的英文词
// int season=0;
// printf(" 请输入季节 1 ( spring ) 2(summer) 3(automn) 4(winter):");
// scanf("%d",&season);
// switch (season) {
// case 1:
// printf("spring\n");
// break;
// case 2:
// printf("summer\n");
// break;
// case 3:
// printf("autumn\n");
// break;
// case 4:
// printf("winter \n");
// break;
// default:
// printf(" 你丫的输入的不对! \n");
// break;
// }
#pragma mark- 枚举类型
// 作用:罗列出所有的可能性,每一个枚举值相当于一个可能性
// 枚举是将人能够识别的标示符和计算机能够识别的数字结合起来,所以每一个枚举值对应一个整数值。
// 枚举类型: enum + 枚举名。
// enum 枚举类型的名字 {
// 值 1, 值 2, 值 3, 值 4
// };
// }
//enum season 是枚举值的类型名。
typedef enum season{
Spring= 0 ,
Summer= 1 ,
Autumn= 2 ,
Winter= 3
}S3;
//enum season s1=Spring;
S3 s1= Spring ;
printf ( "%d\n" ,s1);
scanf ( "%d" ,&s1);
switch (s1) {
case Spring :
printf ( " 春天来了,我要去郊游! " );
break ;
case Summer :
printf ( " 夏天来了,我要去游泳! " );
break ;
case Autumn :
printf ( " 秋天来了,我要去郊游! " );
break ;
case Winter :
printf ( " 冬天来了,我要去滑雪! " );
break ;
default :
break ;
// 作用:用来表示非真即假的数据类型,( 1 字节)
// 存储的数据: YES 和 NO
/*
YES (真) ==1 ; NO (假) ==0 ;
将人能够识别的标识符和计算机能够识别的数字结合起来
*/
// 定义 BOOL 类型的变量
// BOOL isGril=NO;//NO
// BOOL isBoy=YES;//YES
// 输出 bool 类型的变量使用 %d
//printf("%d,%d",isGril,isBoy);
#pragma mark- 关系运算符
// 运算符: >,<,>=,<=,==,!=
// 关系表达式:关系运算符组成的式子叫做关系表达式,结果为 bool 类型数据。
// 注:判断两个数是否相等,要用双等号 “==” ,而非 “=”
// int m=5,n=10;
// 大于 >
// BOOL result = m > n;
// printf("%d\n",result);
//
// 小于 <
// result=m<n;
// printf("%d\n",result);
//
// 大于等于 >=
// result = m<= n;
// printf("%d\n",result);
//
// 等于 ==
// result = m == n;
// printf("%d\n",result);
//
// 不等于 !=
// result= m!=n;
// printf("%d\n",result);
#pragma mark- 逻辑运算符
/*
&& ( 逻辑与 ) :逻辑与运算符 2 边同时为真,整个逻辑表达式的结果为真。
|| ( 逻辑或):逻辑或运算符 2 边的表达式同时为假,整个逻辑表达式结果为假。
! (逻辑非):原有为真,非厚为假;原来为假,非厚为真。
注:逻辑与与逻辑或之间的短路现象。
&& 短路现象:如果运算符左边的表达式为假,则不会判断右边。
|| 短路现象:如果运算符左边的表达式为真,则不会判读右边。
*/
// 逻辑运算
//1. 逻辑与 && ,并且的关系
// int i=3,j=5,k=7;
// BOOL result=0;
// result=(i<=j) && (j!=k);
// printf("%d\n",result);
//2. 逻辑或 || ,或者的关系
// result = (j==k) || (j<k);
// printf("%d\n",result);
//3. 逻辑非,! 颠倒是非
// result=!(i!=k);
// printf("%d\n",result);
// 短路现象
// 逻辑与的短路现象, && 左侧为假,右侧则不参与运算
// int c=0;
// result = i>k && ++c;
// printf("c==%d\n",c);
// 逻辑或的短路现场, || 左侧为真,右侧则不参与运算
// result=(i+k)>=j || ++c;
// printf("c==%d\n",c);
#pragma mark- 分支语句
//c 语言的顺序结果
//1. 顺序结构, main 函数是程序入口,程序执行从上往下,从左至右;
//2. 分支结构,程序执行到某个位置,进行条件判断,根据不同的结果,执行不同的操作;
//3. 循环结构,程序执行到某个位置,反复执行某个位置。
//if 语句
// 原理:根据不同的条件,执行不同的分支程序段。
//if 的第一种形式
// if( 条件表达式 )
// {
// 语句 1;
// }
// 注:先判断条件表达式是否为真,为真则执行大括号中的语句,为假则不执行。
// int count=0;
// int noSee=1;
// printf(" 老公,给我买个包子 :\n");
// scanf("%d",&noSee);
// if (noSee==0) {
// printf(" 请输入你要买的包子数 :\n");
// scanf("%d",&count);
// printf(" 我买到 %d 包子 ",count);
// return 0;
// }
// printf(" 我没有买到包子 ");
// int count=0;// 包子数量
// int noSee=0;// 没有看到
// printf(" 老公,看到卖包子的没有(看到 / 没看到) :");
// scanf("%d",&noSee);
// if (noSee==1) {
// count=1;
// }
// printf(" 包子的数量: %d",count);
// float score=0.0;// 考试成绩
// printf(" 你今天考了多少分 :");
// scanf("%f",&score);
// if (score==100)
// {
// printf(" 真棒,么么哒 \n");
// }
// if (score!=100)
// {
// printf(" 弄死你 \n");
// }
// 练习:输入一个字符,判断是不是 m, 如果是,输出 “ 男性 “ ,不是 , 输出 " 女性 " 。
// char sex=0;
// printf(" 请输入你的性别 :");
// scanf("%c",&sex);
// if (sex=='m')
// {
// printf(" 男性 \n");
// }
// else
// {
// printf(" 女性 \n");
// }
// int money=0;
// printf(" 我要交停车费 ");
// scanf("%d",&money);
// if (money==10)
// {
// printf(" 我今天交了 10 元的停车费 \n");
// }
// printf(" 吃早餐 \n");
// printf(" 去上班 \n");
// 第二种形式
// 语法:
// if ( 条件表达式 ) {
// 语句 1;
// }
// else
// {
// 语句 2;
// }
// 原理:
// 先判断条件表达式,如果条件表达式为真,执行语句 1 ,如果为假,执行语句 2 。
// 输入 2 个整形的数, a1 , a2; 获取他们两者中的最大值,并输出。
// int a1=0,a2=0;
// printf(" 请输入两者中的最大值 :");
// scanf("%d %d",&a1,&a2);
// if (a1>a2) {
// printf(" 最大值: %d\n",a1);
// }
// else
// {
// printf(" 最大值: %d\n",a2);
// }
// 练习:判断年龄是否在【 18 , 38 】范围,如果在,则显示 " 是我的菜 " ,如果不在,显示,是别人的菜。身高在【 160 , 170 】之间;如果身高满足,这是我的菜,如果身高不满足,这不是我的菜,太挫了。
// int age=0;
// printf(" 请输入要判读的年龄 :");
// scanf("%d",&age);
// if (age>=18 && age<=38) {
// printf(" 是我的菜 \n");
// }
// else
// {
// printf(" 不是我的菜 \n");
// }
// int age=0,high=0;
// printf(" 请输入要判读的年龄和身高 :");
// scanf("%d %d",&age,&high);
// if (age>=18 && age<=38)
// {
// if (high>=160 && high<=170)
// {
// printf(" 是我的菜 \n");
// }
// else
// {
// printf(" 不是我的菜,太挫了 \n");
// }
//
// }
// else
// {
// printf(" 不是我的菜 \n");
// }
// 练习:判断年份是不是闰年
// 满足闰年的条件是:
//1. 能被 400 整除 , 2. 能被 4 整除,但是不能被 100 整除。
// int year=0;
// printf(" 请输入年份 :");
// scanf("%d",&year);
// if (year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)) {
// printf("%d 是闰年 ",year);
// }
// else{
// printf("%d 不是闰年 ",year);
// }
#pragma mark- 条件运算符 ? :
// 三目运算符
// 格式:条件表达式? 表达式 1: 表达式 2;
// 原理:先判断条件表达式,如果成立,返回表达式 1 ,不成立,返回表达式 2 。
// int num1=5,num2=10;
//int max=0;
// 把 num1 和 num2 中的最大值,赋值给 max
// if(num1>num2)
// {
// max=num1;
// }
// else
// {
// max=num2;
// }
// printf("max=%d\n",max);
// max=num1 > num2 ? num1 : num2;
// printf("max=%d\n",max);
// int min=0;
// min= num1 < num2 ? num1 : num2;
// printf("min=%d\n",min);
// 思考并输出:
// 练习 : 请输入 3 个数,求三个数的最大值,和最小值
// int num1=0,num2=0,num3=0;
// int max=0,min=0;
// printf(" 请输入 3 个数字 :");
// scanf("%d %d %d",&num1,&num2,&num3);
// max=(num1>num2 ? num1 : num2) > num3 ? (num1>num2 ? num1 : num2) :num3;
// min=(num1<num2 ? num1 : num2) < num3 ? (num1<num2 ? num1 : num2) :num3;
// max=num1 > num2 ? num1 : num2;
// max= max > num3 ? max : num3;
// max=num1 > num2 ? (num1 > num3 ? num1 : num3):(num2 > num3 ? num2 : num3);
//
// printf("max=%d\n",max);
//printf("min=%d\n",min);
// if 的第三种形式
// if ( 条件表达式 1) {
// 语句 1;
// }
// else if ( 条件表达式 2) {
// 语句 2;
// }
// else
// {
// 语句 3;
// }
// 原理:先判断条件表达式 1 ,如果成立,执行语句 1 ,如果不成立,在判断条件表达式 2 ,如果成立,执行语句 2 ,如果不成立,就执行语句 3 。
// 注:这种结构,必须以 if 开头,以 else 结尾,中间写 else if ,并且 else if 可以有多个。
/*
如果从控制台输入一个成绩,如果成绩在 80-100 之间,则输出优秀,如果成绩在 60-80 分之间,则输出良好,否则就输出不及格。
*/
// float score=0;
// printf(" 请输入成绩 :\n");
// scanf("%f",&score);
// if (score > 80 && score <= 100) {
// printf(" 优秀 \n");
// }
// else if(score>=60 && score < 80)
// {
// printf(" 良好 \n");
// }
// else
// {
// printf(" 不及格 \n");
// }
// char letter=0;
// printf(" 请输入一个字符 :\n");
// scanf("%c",&letter);
// if (letter >= '0' && letter <= '9') {
// printf("this is digital\n");
// }
// else if (letter >= 'A' && letter <= 'Z') {
// printf("this is capital letter\n");
// }
// else if(letter >= 'a' && letter <= 'z')
// {
// printf("this is letter\n");
// }
// else
// {
// printf("other\n");
// }
#pragma mark-swith 语句
// 语法
// switch ( 整形表达式 ) {
// case 值 1:
// 执行语句 ;
// break;
// case 值 2:
// 执行语句 ;
// break;
// case ..:
// ...
// default:
// break;
// }
// int number=0;// 存储分机号码
// printf(" 请输入分机号码 :801( 教学部 ) 802( 市场部 ) 803 (职业规划部 ) 804( 总经理 ):");
// scanf("%d",&number);
// switch (number) {
// case 801:
// printf(" 教学部 \n");
// break;
// case 802:
// printf(" 市场部 \n");
// break;
// case 803:
// printf(" 职业规划部 \n");
// break;
// case 804:
// printf(" 总经理 \n");
// break;
// default:
// printf(" 你丫的到底找谁 !\n");
// break;
// }
//case 后只能为整形常量或者整形常量表达式
//case 分支中要加 break ; break 的作用是结束当前分支,跳出 swith
//default 是如果没有匹配到任何的 case 分支,执行 default
// 练习 : 从控制台输入 1-4 ,打印出春夏秋冬的英文词
// int season=0;
// printf(" 请输入季节 1 ( spring ) 2(summer) 3(automn) 4(winter):");
// scanf("%d",&season);
// switch (season) {
// case 1:
// printf("spring\n");
// break;
// case 2:
// printf("summer\n");
// break;
// case 3:
// printf("autumn\n");
// break;
// case 4:
// printf("winter \n");
// break;
// default:
// printf(" 你丫的输入的不对! \n");
// break;
// }
#pragma mark- 枚举类型
// 作用:罗列出所有的可能性,每一个枚举值相当于一个可能性
// 枚举是将人能够识别的标示符和计算机能够识别的数字结合起来,所以每一个枚举值对应一个整数值。
// 枚举类型: enum + 枚举名。
// enum 枚举类型的名字 {
// 值 1, 值 2, 值 3, 值 4
// };
// }
//enum season 是枚举值的类型名。
typedef enum season{
Spring= 0 ,
Summer= 1 ,
Autumn= 2 ,
Winter= 3
}S3;
//enum season s1=Spring;
S3 s1= Spring ;
printf ( "%d\n" ,s1);
scanf ( "%d" ,&s1);
switch (s1) {
case Spring :
printf ( " 春天来了,我要去郊游! " );
break ;
case Summer :
printf ( " 夏天来了,我要去游泳! " );
break ;
case Autumn :
printf ( " 秋天来了,我要去郊游! " );
break ;
case Winter :
printf ( " 冬天来了,我要去滑雪! " );
break ;
default :
break ;
}