程序实例:
计算居民每月用水费用,采用分段计费的方法,x(吨)为用水量,y(元)是居民水费。该程序需要用户输入月用水量x(吨),则会相应的输出用户应支付的水费y(元)。
y = f ( x ) = { 4 x 3 x ≤ 15 2.5 x − 10.5 x > 15 y=f(x) = \begin{cases} \frac{4x}{3} & x \leq 15 \\ 2.5x-10.5 & x > 15 \end{cases} y=f(x)={34x2.5x−10.5x≤15x>15
/*计算二分段函数*/
#include <stdio.h>
int main(void)
{
double x = 2, y; /*定义两个双精度浮点型变量*/
printf("Enter x(x>=0):\n"); /*输入提示*/
/*调用scanf()函数输入数据,变量名x前面加&,%lf中的l是long的首字母*/
scanf("%lf", &x);
/*if-else语句*/
if (x <= 15){
y = 4*x/3;
}else{
y = 2.5*x-10.5;
}
printf("y = f(%f) = %.2f\n", x, y); /*调用printf()函数输出结果。*/
return 0;
}
运行示例1:
运行示例2:
运行示例3:
1、关系运算:
C语言中的关系运算就是比较运算,对于两个操作数进行比较,运算的结果是“真”或“假”,如果为“真”,那么这个表达式的结果就是"1",若为假,则词表达式的结果为"0"。
在上例中
x <= 15
是比较x与15 的大小,如果x值为4,那么该式成立,其结果是"真",若x的值是24.6,该式不成立,结果是"假"。
C语言总共有6种关系运算符,都是双目运算符。用关系运算符将两个表达式连接起来的式子称之为关系表达式。例如:
x <= 15
、
x == 8
、
x != 1
。下表列出了所有的关系运算符。
运算符 | < | <= | > | >= | == | != |
---|---|---|---|---|---|---|
名称 | 小于 | 小于或等于 | 大于 | 大于或等于 | 等于 | 不等于 |
注意: 1、 ==是关系运算符,用于比较两个操作数是否相等;而=是赋值运算符,表示对变量赋值,这个要注意区分。
2、 ==、!=、>=和<=号两个运算符是直接相连的,中间不能有空格。
3、在C语言中,赋值非零数的结果永远为"真",赋值为0的结果则永远为"假",所以要表示等于时千万不能将 ==错写成=,会出现逻辑错误。
2、运算符优先级:
所有关系运算符的优先级要低于算术运算符,但是比赋值运算符优先级要高,关系运算符中,==和!=的优先级要低于其他的运算符。关系运算符的结合方向为从左向右,而赋值运算符的结合方向是从右向左。例如:
int i,j,k, l;
i=3;j=2;k=1;
l = i<j == j<k;
printf("%d", l);
;
这段代码输出的值为1,因为计算顺序是先计算i<j
和j<k
,而这两个关系表达式均为真,所以运算结果都是1,再进行计算关系运算符==,1==1也为真,所以结果就是l=1,其结合顺序如下:l = ((i<j) == (j<k));
。但是不建议写这种不好理解的代码,最好加上括号。