f(x)=-1;x<0 0;x=0 2x;x>0 这个分段函数用switch-case写
时间: 2024-10-23 22:12:52 浏览: 40
条件运算符?-第4章 选择结构程序设计
这个分段函数可以用`switch`语句来表示,但请注意`switch`通常用于整数表达式的比较,而这里涉及到的是条件判断。在C语言中,我们通常使用`if...else if...else`结构来模拟这样的情况。不过,为了适应`switch`的风格,我们可以创建一个`enum`类型并配合`switch`使用。首先,定义一个枚举来代表不同的区间:
```c
typedef enum {
CASE_NEGATIVE = -1,
CASE_ZERO,
CASE_POSITIVE
} Interval;
```
然后,编写`switch`语句:
```c
double f(double x) {
double result;
Interval interval = (x < 0) ? CASE_NEGATIVE :
(x == 0) ? CASE_ZERO :
CASE_POSITIVE;
switch (interval) {
case CASE_NEGATIVE:
result = -1;
break;
case CASE_ZERO:
result = 0;
break;
case CASE_POSITIVE:
result = 2 * x;
break;
default: // 如果输入不在上述范围内,这通常是不期望的,但可以添加一个默认处理
result = 0; // 或者抛出错误
break;
}
return result;
}
```
阅读全文