/***************************************************
关系运算符(比较大小,双目运算符,左结合,优先级小于算数运算符,高于赋值运算符)和表达式(表达式 关系运算符 表达式)
<
<=
>
>=
==
!=
a+b > c-d 先算+-再比较大小 值为1(非0)(真)0(假)
*/
/***************************************************
void main(){
char c='k';
int i=1,j=2,k=3;
float x=3e+5,y=0.85;//x=3*10的5次方
printf("%f,%f,%f\n",x,y,c);
printf("%d,%d\n",'a'+5<c,-i-2*j>=k+1);//a=97 a+5=102=f -1-2*2=-5 3+1=4
printf("%d,%d\n",1<j<5,x-5.25<=x+y);//先算1<j 再算1<5 5-5.25=300000-5.25 x+y=300000+0.85
printf("%d,%d\n",i+j+k==-2*j,k==j==i+5);//i+j+k=1+2+3=6 -2*j=-2*2=-4 先算i+5的值 再算k==j 再计算 0==i+5
}
*/
/**************************************************
逻辑运算符及其优先次序
&& 与 双目运算符 左结合性(从左向右计算) 都真为真 有假必假
|| 或 双目运算符 左结合性 都假必假 有真必真
! 非 单目运算符 右结合性(从右向左计算)
(双目运算符和单目运算符的区别:操作数(变量或常量)数量的不同)
优先级:! && ||
! 算数运算符 关系运算符 &&和|| 赋值运算符
a>b && c>d 相当于 (a>b) && (c>d)
!b==c || d<a 相当于 ((!b)==c)||(d<a)
a+b>c&&x+y<b 相当于 ((a+b)>c)&&((x+y)<b)
*/
/**************************************************
void main(){
char c='k';
int i=1,j=2,k=3;
float x=3e+5,y=0.85;
printf("%d,%d\n",!x*!y,!!!x);//00
printf("%d,%d\n",x||i&&j-3,i<j&&x<y);//10 先算j-3=2-3=-1 x||i是1 再算 1&&-1是1 i<j是1 x<y是0
printf("%d,%d\n",i==5&&c&&(j=8),x+y||i+j+k);//01 i==5是0 0&&c是0 0&&8是0 x+y=300000+0.85 i+j+k=6
}
*/
/**************************************************
if语句
if(表达式){ 语句 }
*/
/**************************************************
void main(){
int a,b,max;
printf("\n input two number:");
scanf("%d%d",&a,&b);
max=a;
if(max<b) max=b;
printf("max=%d",max);
}
*/
/**************************************************
if(表达式){语句1}else {语句2}
*/
/**************************************************
void main(){
int a,b;
printf("input two number:");
scanf("%d%d",&a,&b);
if(a>b)
printf("max=%d\n",a);
else
printf("max=%d\n",b);
}
*/
/**************************************************
if(表达式1){语句1}else if(表达式2) {语句2} else {语句3}
*/
/**************************************************
void main(){
char c;
printf("input a character:");
c=getchar();
if(c<32) printf("this is a control character\n");
else if(c>='0'&&c<='9') printf("this is a digit\n");
else if(c>='A'&&c<='Z') printf("this is a capital letter\n");
else if(c>='a'&&c<='z') printf("this is a small letter\n");
else printf("this is an other character\n");
}
*/
/**************************************************
以下是允许的
if(a=5) 语句;所以日常写表达式时这样写if(5=a)
if(b) 语句;
例题
1.输入一个分数score
2.score<60 输出E
3.60<=score<70 输出D
4.75<=score<80 输出C
5.80<=score<90 输出B
6.90<=score 输出A
*/
/*
void main(){
double score;
printf("输入一个分数(0-100)");
scanf("%lf",&score);
if(0<=score&&score<60)
{
printf("E\n");
}
else if(60<=score&&score<70)
{
printf("D\n");
}
else if(70<=score&&score<80)
{
printf("C\n");
}
else if(80<=score&&score<90)
{
printf("B\n");
}
else if(90<=score&&score<=100){
printf("A\n");
}
else
{
printf("输入分数错误");
}
}
*/
/**************************************************
输入三个数a,b,c要求按由小到大的顺序输出
*/
/*
void main(){
double a,b,c,max;
printf("输入三个数");
scanf("%lf,%lf,%lf",&a,&b,&c);
printf("排序为%lf%lf%lf",a,b,c);
if(a>b)
{
max=a;
a=b;
b=max;
}
if(a>c)
{
max=a;
a=c;
c=max;
}
if(b>c)
{
max=b;
b=c;
c=max;
}
printf("排序为%lf%lf%lf",a,b,c);
}
*/
/**************************************************
if语句的嵌套
if(表达式) {if语句;}
if(表达式) {if语句; }else {if语句;}
就近配对
*/
/*
void main(){
int a,b;
printf("please input A,B:");
scanf("%d%d",&a,&b);
if(a!=b)
if(a>b) printf("A>B\n");
else printf("A<B\n");
else printf("A=B\n");
}
*/
/*
void main(){
int a,b;
printf("please input A,B:");
scanf("%d%d",&a,&b);
if(a==b) printf("A=B\n");
else if(a>b) printf("A>B\n");
else printf("A<B\n");
}
*/