有一个函数y=x(x≦x<2)2x-2(2≦x<4)3x-6(x≧4)用switch语句实现

有一个函数y=x(x≦x<2)2x-2(2≦x<4)3x-6(x≧4)用switch语句实现

x≦x<2?是0<=x<=2吧

#include <stdio.h>
int main() {
int x, y;
scanf("%d", &x);
switch (x)
{
case 0: case 1:
y = x;
break;
case 2: case 3:
y = 2 * x - 2;
break;
default:
y = 3 * x - 6;
}
printf("%d", y);
return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:
    public double calculate(double x) {
        double y;
        switch((int)x) {
            case 0:
            case 1:
                y = x;
                break;
            case 2:
            case 3:
                y = 2 * x - 2;
                break;
            default:
                y = 3 * x - 6;
                break;
        }
        return y;
    }
    

    注意,此处我将x和y都定义为double类型,因为题目的描述中没有明确指定x和y的类型。如果需要限定x和y的类型,可以根据实际情况进行修改。另外,此处我们使用了int型的switch参数进行判断,因此只能判断整数范围内的值。如果需要支持小数范围内的值,可以使用if-else语句来进行判断。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^