Pray_God 2023-11-04 18:17 采纳率: 0%
浏览 19

c51单片机串口实现一个计算器,要求打印计算语句以及结果

num1和num2是语句当中读出的数字,sign决定是哪一种符号的运算,但为什么结果始终是那个数啊

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-04 20:25
    关注

    【以下回答由 GPT 生成】

    首先,我们需要确定问题出现在哪一部分代码中。根据你的描述,代码中涉及到从语句中读取数字和符号,执行相应的运算,最后打印计算语句和结果。我们可以逐步检查这些部分,并尝试找出问题所在。

    首先检查从语句中读取数字和符号的部分。请确保你正确地读取了num1、num2和sign,并将其分别存储在变量中。你可以使用C51的串口通信库函数,例如scanf函数来读取数字和符号。示例如下:

    int num1, num2;
    char sign;
    
    printf("Please enter the first number: ");
    scanf("%d", &num1);
    
    printf("Please enter the second number: ");
    scanf("%d", &num2);
    
    printf("Please enter the sign (+, -, *, /): ");
    scanf(" %c", &sign);  // 注意空格,避免读取到上一个输入的回车符
    

    接下来,我们检查执行运算的部分。根据你的描述,你可能使用了一个switch语句或一系列的if-else语句来根据运算符号执行相应的运算。请确保你正确地使用了运算符和变量进行运算,并将结果存储在正确的变量中。示例如下:

    int result;
    
    switch(sign) {
        case '+':
            result = num1 + num2;
            break;
        case '-':
            result = num1 - num2;
            break;
        case '*':
            result = num1 * num2;
            break;
        case '/':
            result = num1 / num2;
            break;
        default:
            printf("Invalid sign!\n");
            return;  // 可以选择直接返回或进行其他错误处理
    }
    

    最后,我们检查打印计算语句和结果的部分。请确保你正确地打印了计算语句和结果。你可以使用C51的串口通信库函数,例如printf函数来打印。示例如下:

    printf("The calculation: %d %c %d = %d\n", num1, sign, num2, result);
    

    如果你按照以上步骤检查并且代码逻辑正确,那么可能还有其他问题导致结果始终相同。你可以检查其他部分的代码,例如定义变量的位置、变量的初始值等。

    如果以上解决方案不能解决你的问题,可能需要更详细地检查代码。你可以包含更多的代码片段,并提供更多关于问题的描述,以便我们可以更准确地帮助你解决问题。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 修改了问题 11月4日
  • 创建了问题 11月4日

悬赏问题

  • ¥15 这个IC谁知道是什么用途及型号?
  • ¥15 sd问题(标签-stable diffusion|关键词-table)
  • ¥15 移动端浏览器自带播放器控件
  • ¥60 请求帮助 电脑无法安装exe
  • ¥15 怎么不用break/import过滤不符合要求的输入!求解答!
  • ¥15 cs2游戏卡顿,控制台一直跳码
  • ¥15 imshow 不能显示图片只有白色空白窗口
  • ¥15 MDPI期刊中pending review一般要多久
  • ¥15 有关伽马函数运算问题
  • ¥15 jupyter notebook输入框问题