请问这个代码如何用switch-case来写

0比较好处理
但是正数如何归为一个数?
负数也是?

img

#include <stdio.h>

int main() {
    int n;
    scanf("%d",&n);
    int x=(n==0)?0:(n>0)?1:-1;
    switch(x) {
        case -1:
            printf("%d\n",x-1);
            break;
        case 0:
            printf("%d\n",0);
            break;
        case 1:
            printf("%d\n",2*x);
            break;
    }

    return 0;
}

不行吧,case是判断x是什么字符的吧?但可以用if写啊