刚学习C语言,用switch来完成代码,

源码工厂 毕业设计 1

刚学习到这里。 需要输出的是:当x<0时,输出f(x)=-1.以此类推

#include <stdio.h>
int main()
{
    int x=0;
    scanf("%d",&x);
    switch(x<0)
    {
        case 1:
        printf("f=%d\n",-1);
        break;
        case 0:
            switch(x==0){
            case 1:
            printf("f=%d\n",0);
            break;
            case 0:
                printf("f=%d\n",2*x);
                break;
        }
        default:
            printf("请重新输入");
            break;
    }
    getchar();
    return 0;
}

回复

共2条回复 我来回复
  • 毕设工坊
    这个人很懒,什么都没有留下~
    评论

    switch函数里面不能放入表达式,你需要先用另外一个参数来接受这个表达式的结果

    //NO.8
    #include <stdio.h>
    int main()
    {
        int x = 0;
        scanf("%d", &x);
        int a = (x < 0);
        //printf("%d\n", a);
        switch (a)
        {
        case 1:
            printf("f=%d\n", -1);
            break;
        case 0:
            int c = (x == 0);
            switch (c)
            {
            case 1:
                printf("f=%d\n", 0);
                break;
            case 0:
                printf("f=%d\n", 2 * x);
                break;
            }
            break;//这里少了一个break
        default:
            printf("请重新输入");
            break;
        }
        getchar();
        return 0;
    }
    
    0条评论
  • 毕设港湾
    这个人很懒,什么都没有留下~
    评论

    switch并不适用这样的分支判断 这种判断应该用 if …. else if …. else …. 一定要用switch可以这样

    #include <stdio.h>
    int main()
    {
        int x=0;
        scanf("%d",&x);
        switch(x<0?-1:x>0?1:0)
        {
            case -1:
                printf("f=%d\n",-1);
                break;
            case 0:
                printf("f=%d\n",0);
                break;
            case 1:
                printf("f=%d\n",2*x);
                break;
        }
        getchar();
        return 0;
    }
    
    0条评论

发表回复

登录后才能评论