忽悠~娅 2022-01-04 22:16 采纳率: 100%
浏览 70
已结题

编程一个计算器,首先键盘输入要运算的数据,第二步选择运算符,实现简单的加减乘除和乘方,开方,绝对值

首先键盘输入要运算的数据,第二步选择运算符,实现简单的加减乘除和乘方,开方,绝对值

  • 写回答

1条回答 默认 最新

  • 关注

    你题目的解答代码如下:

    
    #include <stdio.h>
    int main(int argc, char** argv)
    {
        float  a,b;
        char op;
        END:printf("请输入算式:");
        scanf("%f%c%f",&a,&op,&b);
        switch(op)
        {
            case '+':
                printf("%g+%g=%g\n",a,b,a+b);break;
            case '-':
                printf("%g-%g=%g\n",a,b,a-b);break;
            case '*':
                printf("%g*%g=%g\n",a,b,a*b);break;
            case '/':
                if (0==b)
                printf("除数不能为零!\n");
                else
                printf("%g/%g=%g\n",a,b,a/b);
                break;
            default:
                printf("运算符错误!\n");
        }
        char ch;
        printf("是否继续运算(Y/N or y/n):");
        scanf("%1s",&ch); //%c改成%1s
        if(ch=='Y'||ch=='y')
        goto END;
        else
        printf("over!");
        return 0;
    }
    

    添加了乘方,开方,绝对值功能

    #include <stdio.h>
    #include <math.h>
    int main(int argc, char** argv)
    {
        float  a,b;
        char op;
        printf("请选择运算符加+ 减- * 除/  乘方^ 开方@  绝对值#");
        scanf("%c",&op);
        if (op=='@' || op=='#')
        {
        printf("请输入一个数值:");
        scanf("%f",&a);
        }
        else
        {
        printf("请输入两个数值:");
        scanf("%f%f",&a,&b);
        }
        switch(op)
        {
            case '+':
                printf("%g+%g=%g\n",a,b,a+b);break;
            case '-':
                printf("%g-%g=%g\n",a,b,a-b);break;
            case '*':
                printf("%g*%g=%g\n",a,b,a*b);break;
            case '/':
                if (0==b)
                printf("除数不能为零!\n");
                else
                printf("%g/%g=%g\n",a,b,a/b);
                break;
            case '^':
                printf("%g^%g=%g\n",a,b,powf(a,b));break;
            case '@':
                printf("%g开方=%g\n",a,sqrtf(a));break;
            case '#':
                printf("|%g|=%d\n",a,abs(a));break;
            default:
                printf("运算符错误!\n");
        }
        return 0;
    }
    
    

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

    img

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

报告相同问题?

问题事件

  • 系统已结题 1月22日
  • 已采纳回答 1月14日
  • 创建了问题 1月4日

悬赏问题

  • ¥15 关于将inet引入的相关问题
  • ¥15 关于一个倒计时的操作和显示设计
  • ¥15 提问STK的问题,哪位航天领域的同学会啊
  • ¥15 苹果系统的mac m1芯片的笔记本使用ce修改器使用不了
  • ¥15 单相逆变的电压电流双闭环中进行低通滤波PID算法改进
  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 如何卸载arcgis 10.1 data reviewer for desktop
  • ¥15 共享文件夹会话中为什么会有WORKGROUP
  • ¥15 关于#python#的问题:使用ATL02数据解算光子脚点的坐标(操作系统-windows)
  • ¥115 关于#python#的问题:未加密前两个软件都可以打开,加密后只有A软件可打开,B软件可以打开但读取不了数据