关于简单的#C语言算式计算器#的问题,如何解决?

请大家帮我看看,我在学习C语言程序设计课程,线上学习的,我遇到了一个问题,就是编写一个程序实现算式计算器,通过键盘输入一个算数表达式,如3+2,然后屏幕上显示结果:5;
我按照讲的程序代码写的,为啥我的运行的时候,输入3+2,它不计算出来5呢,我对照的代码也没看出来啥问题啊,请大家帮我看看!

对了,我用的Visual Studio 2022这个版本编写的。

img


img

这个是演示的版本:

img

将输入语句:scanf_s("%d%c%d\n", &v1, &op, &v2); 修改为:scanf_s("%d %c %d", &v1, &op, 1, &v2); 即可。

scanf 那一行不要\n
还有 result 没有初值
double result = 0.0; // 加上一个初值

你在输入的时候,每个数字和符号都得有空格
即这样输入:3 + 2
必须要有空格!

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7654050
  • 以下回答由chatgpt基于相关博客总结生成:

    解决方案

    尽管您没有提供实际的代码,但根据您的问题描述和示例截图,我可以提供一个解决方案的大致思路。下面是解决该问题的步骤:

    步骤1:检查输入接收的方式 - 确保您使用合适的函数来接收用户输入。在C语言中,可以使用scanf函数来接收用户的输入,并将其存储在合适的变量中。

    步骤2:解析算术表达式 - 使用字符串操作函数(如strtok)或者循环迭代的方式,将用户输入的算术表达式拆分为操作数和运算符。 - 将操作数和运算符存储在适当的变量中,以备后续计算使用。

    步骤3:执行计算操作 - 根据拆分出的操作数和运算符,使用适当的条件语句进行计算。例如,使用if语句来判断运算符是加法、减法、乘法还是除法,并根据运算符执行相应的计算操作。 - 将计算结果存储在一个变量中,以备后续显示使用。

    步骤4:显示结果 - 使用适当的输出函数(如printf)来将计算结果显示在屏幕上。

    请注意,这只是一个大致的解决方案思路,并不能解决所有细节问题。实际上,还有很多其他的因素可能导致您的程序无法正确计算并显示结果,例如运算符优先级、操作数类型不匹配、错误的数据类型转换等。因此,以下提供的代码仅为示例,您需要根据自己的具体情况适当调整。

    #include <stdio.h>
    
    int main() {
        float num1, num2, result;
        char operator;
    
        printf("请输入一个算术表达式(以空格分隔操作数和运算符):");
        scanf("%f %c %f", &num1, &operator, &num2);
    
        if (operator == '+') {
            result = num1 + num2;
        } else if (operator == '-') {
            result = num1 - num2;
        } else if (operator == '*') {
            result = num1 * num2;
        } else if (operator == '/') {
            result = num1 / num2;
        } else {
            printf("无效的运算符\n");
            return 1; // 返回非零值表示出现错误
        }
    
        printf("结果:%f\n", result);
    
        return 0;
    }
    

    这是一个简单的示例程序,它可以接收用户的输入,并根据输入的运算符进行相应的计算操作,最后将计算结果显示在屏幕上。

    请根据您的具体情况和要求进行适当的修改和调整。希望对您有所帮助!如果您遇到进一步的问题,请随时提问。


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