懒爷驾到 发表于 2022-11-20 00:05:17

用switch case 表示分段函数

x>0y=2x这一步输不出来结果,不知道哪里有问题。用switch case 表示。
x=0y=0
x<0y=-1

谢谢各位了


#include <stdio.h>

int main()
{
        int x,n;
        printf("请输入一个整数:");
        scanf("%d",&x);
       
        if(x<0){
                n=1;
        }
      if(x=0){
                n=2;
        }
        if(x>0){
                n=3;       
        }
       
        switch(n){
                case 1:
                        printf("-1\n");break;
                case 2:
                        printf("0\n");break;
                case 3:
                        printf("%d\n",2*x);break;
        }
        return 0;
}   

jackz007 发表于 2022-11-20 00:35:51

本帖最后由 jackz007 于 2022-11-20 00:40 编辑

      第12行
      if(x=0){
      得改为
      if(x == 0){
      用三目运算可以简化代码
#include <stdio.h>

int main(void)
{
      int x , n                              ;
      printf("请输入一个整数:")             ;
      scanf("%d" , & x)                      ;
      n = (x < 0) ? 1 : (x == 0) ? 2 : 3   ;
      switch(n) {
                case 1: printf("-1\n") ; break ;
                case 2: printf("0\n"); break ;
                case 3: printf("%d\n" , 2 * x) ;
      }
}

懒爷驾到 发表于 2022-11-20 10:28:50

谢谢你,结果完美输出,也谢谢你的简化{:5_106:}{:5_108:}
页: [1]
查看完整版本: 用switch case 表示分段函数