aolone 2022-11-10 22:02 采纳率: 80%
浏览 23
已结题

简单模拟运算器工作,按从左到右顺序计算,4种运算符优先级相同

问题遇到的现象和发生背景
int main(void)
{
    char ch;
    int s1,s2;
    printf("Enter characters:");
    ch=getchar();
    s1=ch-'0';
    while((ch=getchar())!=('='))//当s2>10时会出错; 
    {    
        s2=getchar()-'0';
        switch(ch)
        {
            case '+':s1=s1+s2;break;
            case '-':s1=s1-s2;break;
            case '*':s1=s1*s2;break;
            case '/':s1=(float)s1/s2;break;
            default:;break;
        }
    }
    printf("%d",s1);
    
    return 0;
}

运行结果及报错内容

img

我的解答思路和尝试过的方法

当输入的数>=10是,程序会死机,求解决方法;

  • 写回答

1条回答 默认 最新

  • 龙套(路人) 2022-11-11 10:56
    关注

    仅供参考,望采纳~

    #include<stdio.h>
    int main(void)
    {
        char ch;
        int s1,s2;
        printf("Enter characters:");
        scanf("%d",&s1);
        while((ch=getchar())!=('='))//当s2>10时会出错; 
        {    
            scanf("%d",&s2);
            switch(ch)
            {
                case '+':s1=s1+s2;break;
                case '-':s1=s1-s2;break;
                case '*':s1=s1*s2;break;
                case '/':s1=(float)s1/s2;break;
                default:break;
            }
        }
        printf("%d\n",s1);
       
        return 0;
    }
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月19日
  • 已采纳回答 11月11日
  • 创建了问题 11月10日

悬赏问题

  • ¥15 气象网格数据与卫星轨道数据如何匹配
  • ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
  • ¥15 微软账户问题不小心注销了好像
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?
  • ¥15 metamask如何添加TRON自定义网络
  • ¥66 关于川崎机器人调速问题
  • ¥15 winFrom界面无法打开