不可吧x=y,y=x;要用中间变量t=x;x=y;y=t;
#include <stdio.h>
int main(){
int x=1;
int y=2;
int t;
t=x;
x=y;
y=t;
printf("a=%d,b=%d\n",x,y);
return 0;
}
1)关系表达式:
a:关系表达式的数值只能为1(表示真),或0(表示假);
如:若9>8这个表达式是真的,所以9>8这个表达式的数值为1;反之,则为假;
b:
int x=1,y=0,z=2;
x<y<z;
//从数学角度出发为假,但c语言中存在优先级则1<0为假;0<2为真,所以结果为1;
c:等号和赋值区别:
? ? ? ? 一定要记住“=”是赋值,而“==”是等号?
2)逻辑表达式
? ? ? ? 核心:表达式的数值只能为1(表示为真),或0(表示为假);?
a:共有&&? ? ? ? ?||? ? ? ? !三种逻辑运算符号;
b:!>&&>||? ? ? ? 符号的优先级;?
c:x大于0小于10的写法:
? ? ? ? ? ? ? ? ? ? ? ? (0<x)&&(x<10)
#include <iostream>
int runnian(int);
int main() {
int year;
printf("请输入一个年份:");
scanf("%d", &year);
if (runnian(year) == 1)
printf("%d是闰年\n", year);
else
printf("%d不是闰年\n", year);
system("pause");
return 0;
}
int runnian(int year) {
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
year = 1;
else
year = 0;
return year;
}
a.else是最接近的if且没有else的语句匹配;
b.交换的程序写法:
t=x;x=y;y=t;
if(a<b){t=a;a=b;b=t}
c.
//单独if语句
if(a<b) t=a;
//标准if语句
if(a<b) min=a;
else min=b;
//嵌套if语句
if(a<b)
if(b>c)
printf("ok!");
//多选一if语句
if(a==t) printf("a");
else if (b==t) printf("b");
else if (c==t) printf("c");
else printf("d");
//例题
int a = 1, b = 0;
if (!a)b++; //是假不执行
else if (a == 0); //是假不执行
if (a)b += 2; //属于else if 的嵌套if语句,不执行
else b += 3; //if-else-if语句没有一个正确的,就执行else
//b的值为3
? ? ? ? 表达式1?表达式2:表达式3
a.口诀:前真后假
b.注意是表达式1的数值是非0时,才采用表达式2的数值作为整个运算结果
? ? ? ? ? ? ? 表达式1的数值为0时,就采用表达式3的数值作为整个运算的结果
?a.执行的流程要一定要看懂!
b.注意有break和没有break的区别;
? ? ? ? 没有break时候,只要有一个case匹配了,剩下的都要执行;有break则时直接跳出switch语句!
?c.switch语句只可以用break;不能才采用continue;
d.switch(x)? ? ? ? ?x:可为整型常量,字符型常量,枚举型常量
注:x一定不可以是变量!