可以,但是比较麻烦
#include <stdio.h>
int sign(int x) { if (x == 0) return 0; else if (x > 0) return 1; else return -1; }
int main() {
int f = 0, x;
scanf("%d", &x);
switch (sign(x))
{
case -1:
f = -1;
break;
case 0:
f = 0;
break;
case 1:
f = 2 * x;
break;
}
printf("%d", f);
}
供参考:
#include <stdio.h>
int main()
{
int x, y;
scanf("%d", &x);
switch ((x < 0) * 1 + (x == 0) * 2 + (x > 0) * 3)
{
case 1:y = -1; break;
case 2:y = 0; break;
case 3:y = 2 * x; break;
default:
break;
}
printf("f(x)=%d", y);
return 0;
}
【以下回答由 GPT 生成】
问题答案:
经过分析,这个分段函数可以使用switch-case语句来编写。但是由于它是一个线性分段函数,使用if-else语句更为简单和直观。下面是使用C语言编写该分段函数的示例代码:
#include <stdio.h>
int main() {
int x;
printf("请输入一个整数x:");
scanf("%d", &x);
if (x < 0) {
printf("f(%d) = -1\n", x);
} else if (x == 0) {
printf("f(%d) = 0\n", x);
} else {
printf("f(%d) = %d\n", x, 2 * x);
}
return 0;
}
请注意,上述代码使用了if-else语句来判断x的取值范围,并根据不同情况下的计算结果进行输出。输出的结果分别对应了函数f(x)在不同范围内的取值。
尽管可以使用switch-case语句来编写这个分段函数,但由于该函数的条件比较简单,使用if-else更加直观和方便。
【相关推荐】