#include<stdio.h>
#include<math.h>
int main()
{
int a, b, c;
float area;
double s;
printf("请输入三角形的三条边:");
scanf_s("%d,%d,%d", &a, &b, &c);
s = (a + b + c) / 2.0;
if (a + b <= c || b + c <= a || a + c <= b)
printf("不构成三角形\n");
else
{
area = sqrt(s * (s - a) * (s - b) * (s - c));
printf("三角形的面积是:%f\n", area);
}
return 0;
}
#include<stdio.h>
int main()
{
int x; float y;
printf("请输入x的值:");
scanf_s("%d", &x);
if (x != 0)
y = 1.0 / x;
else
y = 0;
printf("%d,%f", x, y);
return 0;
}
4.2 关系运算符,逻辑运算符,条件运算符
1.关系运算符
注意:
1.关系运算符都是双目运算符,其结合方向是左结合
2.关系运算符的优先级低于算术运算符,但是高于赋值运算符
3.关系运算符中,>,<,>=,<=的优先级相同,==,!=的优先级相同,前者的优先级高于后者,即“>=”的优先级高于“==”
2.关系表达式
用关系运算符将两个表达式连接起来的式子称为关系表达式。关系表达式的一般形式为
表达式1关系运算符表达式2
功能:比较两个表达式的大小,返回一个逻辑值。
例如:“a+b>=c-d","x<=3/2”,“'a'+1!=c","-i-5*j==k+1"都是合法的关系表达式
关系表达式中允许出现嵌套的情况,例如”a>(b>c)","a!=(c==d)"等
注意:
1.注意区分运算符“=”和“=="."="是赋值运算符,“==”是关系运算符
2.对实数进行相等判断可能得不到正确的结果,例如“1.0/3*3.0==1.0"的结果为0
3.关系表达式中可以出现赋值运算符,如"a>(b=0)",但是不能写成"a>b=0"的形式。因为关系运算符的优先级高于赋值运算符,表达式"a>b=0"相当于"(a>b)=0",赋值运算符的左边不是变量,会出现编译错误
关系表达式主要用于分支结构中的条件判断。关系表达式的结果是一个逻辑值“真”或“假”,由于C语言中没有逻辑类型的数据,因此用“1”表示真,“0”表示假。
#include<stdio.h>
int main()
{
char c = 'm';
int i = 10, j = 20, k = 30;
float x = 13e+5, y = 10.85;
printf("%d,%d,", 'a' + 5 < c, -i - 2 * j >= k + 1);
printf("%d,%d,", 1 < j < 5, x - 5.25 <= x + y);
printf("%d,%d\n", i + j + k == -2 * j, k == j == i + 5);
return 0;
}
4.2.2 逻辑运算符和逻辑表达式
1.逻辑运算符
关系表达式只能描述单一的条件。对于较复杂的复合条件,例如“x小于10且x大于4”,如果用关系表达式“4<x",其值为0;然后再计算"0<10",其值为1;即说明当X=2时满足关系"4<x<10",很明显是错误的。因此需要用逻辑运算符将若干个关系表达式连接起来才能正确描述关系。逻辑运算符如表:
注意:与运