逻辑与&&,逻辑或|| 的短路现象:
&& 一假即假 左边为假,不运行右边
|| 一真即真 左边为真,不运行右边
枚举
一组有符号名称的整形常量--罗列出所有状态和所有可能的结果。
枚举属构造类型
enum 枚举名 {美剧值列表};
作用:将人能看懂的标识符与计算机能识别的数字建立对应关系,提高程序的可阅读性。
if(条件表达式1){语句1;
} else if(条件表达式2){语句2;
} else{语句3;
}
条件表达式的返回值为BOOL类型
Switch语句
switch(整型表达式){
case 值1:{语句1;break;}case值2:{语句2;break;}...
case 值3:{语句n;break;}default:{语句n + 1;break;}
}
break 用在 switch...case中,用于结束某个case,然后执行switch之外的语句。
整个default语句都可以舍掉
多个case可以运⾏一个语句块
case中定义变量需要加{}
default语句放不放倒最后,不影响执行结果
switch语句执行直到下一个break或switch语句结束才回终止。
1.输入月份和日期,输出时该年的第几天
int month =0, day = 0;
printf("请输入月份:\n");
scanf("%d", &month);
printf("请输入日期:\n");
scanf("%d", &day);
int sum = 0;
switch (month - 1) {
case 11:
sum +=30;
case 10:
sum +=31;
case 9:
sum +=31;
case 8:
sum +=31;
case 7:
sum +=31;
case 6:
sum +=30;
case 5:
sum +=31;
case 4:
sum +=30;
case 3:
sum +=31;
case 2:
sum +=28;
case 1:
sum +=31;
default:
break;
}
sum += day;
printf("%d月%d号是该年的第%d天\n", month, day, sum);
int year =0;
printf("输入一个年份:");
scanf("%d", &year);
if ((0 == year %4 && 0 != year %100) ||0 == year % 400) {
printf("%d年是闰年\n", year);
}else {
printf("%d年不是闰年\n", year);
}
char c ='\0';
printf("请输入一个字符:\n");
scanf("%c", &c);
if (c >= 'A' && c <='Z') {
printf("大写字母\n");
}else if (c >='a' && c <= 'z') {
printf("小写字母\n");
}else if (c >='0' && c <= '9') {
printf("数字\n");
}else {
printf("其他\n");
}
运算符都输入,根据运算符求结果
float number1 =0, number2 = 0;
char c = '\0';
printf("请输入两个运算数及运算符(eg:34+56):\n");
scanf("%f%c%f", &number1, &c, &number2);
float result = 0;
switch (c) {
case '+':
result = number1 + number2;
printf("运算结果为%.2f\n", result);
break;
case '-':
result = number1 - number2;
printf("运算结果为%.2f\n", result);
break;
case '*':
result = number1 * number2;
printf("运算结果为%.2f\n", result);
break;
case '/':
result = number1 / number2;
printf("运算结果为%.2f\n", result);
break;
default:
break;
}
int number1 =0, number2 = 0, number3 =0;
printf("请输入三个数:\n");
scanf("%d%d%d", &number1, &number2, &number3);
if ((number1 + number2) > number3 && (number2 + number3)
> number1 && (number1 + number3) > number2) {
printf("能构成三角形\n");
}else {
printf("不能构成三角形\n");
}
int number1 =0, number2 = 0, number3;
printf("请输入三个数:\n");
scanf("%d%d%d", &number1, &number2, &number3);
int max = number1 > number2 ? number1 : number2;
max = max > number3 ? max : number3;
int min = number1 < number2 ? number1 : number2;
min = min < number3 ? min : number3;
int mid = (number1 > min) && (number1 < max) ? number1 :
((number2 > min) && (number2 < max) ? number2 : number3);
printf("中间值为%d\n", mid);