scanf(“a=%f,b=%f,c=%f”,&a,&b,&c);
disc=b*b-4*a*c;
p=-b/(2*a);
q=sqrt(disc)/(2*a);
x1=p+q;x2=p-q;
谭浩强 C 语言程序设计 2001 年 5 月 1 日
printf(“\nx1=%5.2f\nx2=%5.2f\n”,x1,x2);
}
谭浩强 C 语言程序设计 2001 年 5 月 1 日
5 分支结构程序
5.1 关系运算符和表达式
在程序中经常需要比较两个量的大小关系,以决定程序下一步的工作。比较两个量的运
算符称为关系运算符。
5.1.1 关系运算符及其优先次序
在C语言中有以下关系运算符:
1) < 小于
2) <= 小于或等于
3) > 大于
4) >= 大于或等于
5) == 等于
6) != 不等于
关系运算符都是双目运算符,其结合xìng均为左结合。关系运算符的优先级低于算术运算
符,高于赋值运算符。 在六个关系运算符中,<,<=,>,>=的优先级相同,高于==和!=,==
和!=的优先级相同。
5.1.2 关系表达式
关系表达式的一般形式为:
表达式 关系运算符 表达式
例如:
a+b>c-d
x>3/2
‘a’+1
-i-5*j==k+1
都是合法的关系表达式。由于表达式也可以又是关系表达式。 因此也允许出现嵌套的情况。
例如:
a>(b>c)
a!=(c==d)
等。
关系表达式的值是真”和“假”,用“1”和“0”表示。
如:
5>0 的值为“真”,即为 1。
(a=3)>(b=5)由于 3>5 不成立,故其值为假,即为 0。
【例 5.1】
main(){
char c='k';
int i=1,j=2,k=3;
float x=3e+5,y=0.85;
谭浩强 C 语言程序设计 2001 年 5 月 1 日
printf("%d,%d\n",’a’+5
printf("%d,%d\n",1
printf("%d,%d\n",i+j+k==-2*j,k==j==i+5);
}
在本例中求出了各种关系运算符的值。字符变量是以它对应的 ASCII 码参与运算的。对
于含多个关系运算符的表达式,如 k==j==i+5,根据运算符的左结合xìng,先计算 k==j,该式不
成立,其值为 0,再计算 0==i+5,也不成立,故表达式值为 0。
5.2 逻辑运算符和