You need to enable JavaScript to run this app. 初学C++编写的加法计算器为何运行后输出结果为0?
优惠活动
大模型
产品
解决方案
定价
更多

初学C++编写的加法计算器为何运行后输出结果为0?

代码输出异常的核心原因

出现输入两个1却输出0的结果,是三个代码问题共同导致的:

  • 执行顺序完全颠倒:程序实际运行流程为:声明整数变量a、b → 立刻执行output = a + b计算和值 → 才调用getline读取用户输入的两行内容存进字符串变量 → 输出之前算好的output。等程序读到你输入的两个1的时候,求和计算早就执行完了,读进来的输入从头到尾没有参与任何运算。
  • 变量类型与赋值逻辑混乱:你声明的number1、number2是字符串类型,既不能直接通过number1 = a接收整数a的值(这行本身存在类型不匹配的编译问题,即便在宽松编译规则下能跑,结果也完全不符合预期),也没有做“把读入的字符串转成整数、赋值给a和b”的转换步骤,就算把输入顺序调整正确,存进字符串的数字内容也不会自动转成整数参与运算。
  • 未初始化的随机值问题:你声明int a; int b;的时候没有给两个变量设置初始值,此时变量内存里存的是无意义的随机垃圾值。这次运行时刚好两个随机值相加等于0,就出现了输出为0的现象。
可正常运行的修正代码

去掉冗余的字符串读取逻辑,直接用整数输入流完成功能即可:

#include <iostream>
using namespace std;

int main () {
    int a;
    int b;
    // 先读取用户输入的两个整数
    cin >> a;
    cin >> b;
    // 再执行求和计算
    int output = a + b;
    cout << output << endl;
    return 0;
}

调整后的执行逻辑为:声明存储变量 → 读取用户输入值 → 计算和值 → 输出结果,完全匹配加法计算器的预期功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.25 19:06:03