You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++编写基础计算器程序运行得到异常输出如何排查解决

问题根因
  • 运算符使用错误:你混淆了C++的赋值运算符=和相等比较运算符==。代码中所有计算结果赋值的语句写的都是类似(num1 + num2) == result,==只会判断左右两边值是否相等,不会把左侧的计算结果写入result变量,这类语句执行后没有任何实际效果。
  • 局部变量未初始化:定义int result时没有给初始值,C++中栈上的局部整型变量未初始化时,存储的是内存空间残留的随机垃圾值,你输出的32764就是这个垃圾值。
修复代码
#include <iostream>
using namespace std;

int main()
{
    int num1;
    int num2;
    int result = 0; // 初始化变量避免垃圾值
    char op;

    cout << "Enter one number: ";
    cin >> num1;
    cout << "Enter another number: ";
    cin >> num2;
    
    cout << "Enter how you want to calculate: ";
    cin >> op;
    
    if(op == '+')
    {
        result = num1 + num2;
        cout << result;
    }
    else if(op == '-')
    {
        result = num1 - num2;
        cout << result;
    }
    else if(op == '*')
    {
        result = num1 * num2;
        cout << result;
    }
    else if(op == '/')
    {
        if(num2 == 0) {
            cout << "Error: divisor cannot be zero";
        } else {
            result = num1 / num2;
            cout << result;
        }
    }
    else
    {
        cout << "Invalid parameter ";
    }
    return 0;
}
额外优化说明

如果需要支持小数运算,可以将num1、num2、result的类型从int改为float或double,除法运算会自动保留小数部分。


内容的提问来源于stack exchange,提问作者tannerco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 18:45:00