霄麒 2022-01-29 19:56 采纳率: 100%
浏览 70
已结题

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

问题遇到的现象和发生背景

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

img

问题相关代码,请勿粘贴截图
#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;
}

运行结果及报错内容

img


而且输出的界面在我输入完X之后,直接结束。没有看到输出结果

  • 写回答

6条回答 默认 最新

  • 关注

    switch并不适用这样的分支判断
    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;
    }
    

    如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 2月6日
  • 已采纳回答 1月29日
  • 创建了问题 1月29日

悬赏问题

  • ¥15 关于Lammps建模的描述
  • ¥15 #lingo#请问一下为什么会出现以下情况,是因为l第一个值是0的缘故吗?
  • ¥15 设计格雷码同步八进制计数器
  • ¥100 改写matlab程序(关键词-系统对)
  • ¥15 函数信号发生器仿真电路
  • ¥15 Qt的pixmap和image图片加载都导致程序崩溃怎么办
  • ¥15 Kali木马生成问题求解
  • ¥30 求一下解题思路,完全不懂
  • ¥15 C51单片机串口控制JQ6500语音模块
  • ¥30 想给yolo5模型加一个图片识别界面,但是图片还没有检测出来就闪退了