1、关系运算符:=> 2、逻辑运算符:!、&&、 3、逻辑值:真(1)、假(0) 4、非零为真。粵为假 5、条件运犷:表达式1?表达式2:表达式3 若intx=3,y=4,z=5 1)求表达式!(xy?x+y:zy的值
1、关系运算符: =、 >、 != 2、逻辑运算符: !、 &&、 || 3、逻辑值:真(1)、假(0) 4、非零为真,零为假 5、条件运算符:表达式1?表达式2 :表达式3 若 int x=3,y=4,z=5; 1)求表达式 !((xy? x+y :!z+y的值
6、使用条件选择语句(if)需要注意的问题 以比较典型i语句为例: 表达式要扩上, 括号后没有符号 if(表达式1) 语句1 只能有一个语句,多 个的话必需用 e⊥se 语句2 只能有一个语句,多 个的话必需用
6、使用条件选择语句(if)需要注意的问题: 以比较典型if语句为例: if(表达式1) 语句1 else 语句2 表达式要扩上, 括号后没有符号 只能有一个语句,多 个的话必需用复合语 句 只能有一个语句,多 个的话必需用复合语 句
例如:实验程序(三个数按升序排序) maino f int a,b,c, t; scanf(“%d,%d,%c”,&a,&b,&c); if(a>b) It=a; a=b: b=t if(a>c) It=a;a=c;c=t if(b>c) It=b:b=c:c=t printf(“a=%d,b=%d,c=%d”,a,b,c)
例如:实验程序(三个数按升序排序) main() { int a , b , c , t ; scanf(“%d,%d,%c”,&a,&b,&c); if(a>b) {t=a;a=b;b=t;} if(a>c) {t=a;a=c;c=t;} if(b>c) {t=b;b=c;c=t;} printf(“a=%d,b=%d,c=%d”,a,b,c) }
maino i int a, b, c, t /不用复合语句的情况 scanf(%d, %d, %c, &a, &b, &c) if(a>b) t=ar a=b b=t if(a>c) It=a;a=c:c=t if(b>c) It=b; b=c:c=t printf(“a=%d,b=%d,c=%d”,a,b,c)
main() { int a , b , c , t ; /*不用复合语句的情况*/ scanf(“%d,%d,%c”,&a,&b,&c); if(a>b) t=a; a=b; b=t; if(a>c) {t=a;a=c;c=t;} if(b>c) {t=b;b=c;c=t;} printf(“a=%d,b=%d,c=%d”,a,b,c); }
ino mainO 去掉复合语句* int a, 3 int a YB, X, y scanf(2:平(3,图;没a,b) if(a>b) if(a>b) x=a+b÷xb; else y=a-b x池ho;y=a/b;} se printf((“x=%米中,3出3y printf(“x=%d,y=%d,c=%d”,x,y);
main() { int a , b , x , y ; scanf(“%d,%d,%c”,&a,&b); if(a>b) { x=a+b; y=a-b;} else { x=a*b ; y=a/b ;} printf(“x=%d,y=%d,c=%d”,x,y); } main() /* 去掉复合语句*/ { int a , b , x , y ; scanf(“%d,%d,%c”,&a,&b); if(a>b) x=a+b; y=a-b; else { x=a*b ; y=a/b ;} printf(“x=%d,y=%d,c=%d”,x,y); }
使用开关分支语句 般是算术表达式, 括号扩上,括号后没符号 ( switch语句)要注意 的问题: 这组case子句用花括号扩上个数不限 swch(表达式 { case E1:语包组1; break; 每个case子句执行完由 case E2语句组2: break break结束 switch语句 case En语旬组 n; break当每个e子句都不匹配的 default:语句组; break., 时候,执行 default子句
switch( 表达式) { case E1:语句组 1; break; case E2:语句组 2; break; …….. case En: 语句组 n; break; [default: 语句组 ; break; ] } ……. 使用开关分支语句 (switch语句)要注意 的问题: 一般是算术表达式, 括号扩上,括号后没符号 这组case子句用花括号扩上个数不限 每个case子句执行完由 break结束switch语句 当每个case子句都不匹配的 时候,执行default子句
例 void maine0 intx=1,y=0,a=0,b=0 switch(x) i case I switch(y) i case 0: a++; break; case 1: b++. break case 2. a++ b++ break case 3: a++ b++ rin tf( na=%d, b=%d,,a,b) 运行结果:a=2b=1
例 void main() { int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0: a++; break; case 1: b++; break; } case 2: a++;b++; break; case 3: a++;b++; } printf(“\na=%d,b=%d”,a,b); } 运行结果:a=2,b=1
程序举例:*写程序,由公元号判断某一年是否闰年。 分析:闰年的条件:1)公元号能被4整除,但不能被100 整除,是闰年;2)公元号能被100整除,又能被400整 狳,是闰年。不满足这两个条件的不是闰年。 以变量1eap代表是否闰年的信息。若闺年,令1ap=1非闰 年,eap=0。(eap是一个信号量) T year被4整除 F year被100整除 F ea被4整F leap=0 leap=1 leap=0 leap=1 leap F 输出"闰年 输出"非闰年
maino Rint year, leap scanf(“%d”,<year); if (year% 04==0) Rif (year%100==0) if (year 0400==0) leap=1; else leap=0, 3 else ea eise leap=0 if (leap) printf("%d is"year); else printf(" %od is not"year); printf("a leap year In);
main() {int year,leap; scanf(“%d”,&year); if (year%4==0) {if (year%100==0) {if (year%400==0) leap=1; else leap=0;} else leap=1; } else leap=0; if (leap) printf("%d is",year); else printf("%d is not",year); printf("a leap year.\n"); }
maino fint year, leap if (year %04:=0) leap=0; else if(year%100=0 leap=1 else if (year%400!=0) leap=0; ese leap=1 if (leap) printf("od is", year); else printf("%d is not"year); printf("a leap year. In");
main() {int year,leap; if (year%4!=0) leap=0; else if (year%100!=0) leap=1; else if (year%400!=0) leap=0; else leap=1; if (leap) printf("%d is",year); else printf("%d is not",year); printf("a leap year.\n"); }