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

C++程序输出额外0问题:输入100和20得到100 200的解决方法

问题分析与解决方案:输出多了额外的0

问题根源

你的代码存在重复输出的问题:

  • add函数内部已经通过cout打印了输入的两个数字(100和20)
  • main函数中又执行了cout << add(num1, num2),而add函数返回固定值0,这会把返回值0追加打印到之前的输出后面,最终就出现了100 200(实际是100 20 + 0)

两种解决方法

方法一:直接调用函数,不输出返回值

修改main函数,去掉cout包裹,直接调用add函数即可:

#include <iostream>
using namespace std;

int add (int num1, int num2)
{
  cout << num1 << " " << num2;

  return 0;
}

int main ()
{
  int num1, num2;
  cin >> num1;
  cin >> num2;

  add(num1, num2); // 直接调用,不再输出函数返回值
}

方法二:让函数职责单一(更规范的写法)

函数命名add但实际没做加法,建议调整函数职责,让打印逻辑和计算逻辑分离:

#include <iostream>
using namespace std;

// 改为专门的打印函数,用void类型不需要返回值
void printTwoNumbers(int num1, int num2)
{
  cout << num1 << " " << num2;
}

int main ()
{
  int num1, num2;
  cin >> num1;
  cin >> num2;

  printTwoNumbers(num1, num2);
}

如果add函数原本是要实现加法功能,那应该专注计算,输出交给main处理:

#include <iostream>
using namespace std;

int add(int num1, int num2)
{
  return num1 + num2; // 仅负责加法计算
}

int main ()
{
  int num1, num2;
  cin >> num1;
  cin >> num2;

  cout << num1 << " " << num2; // 在main中打印输入的两个数
  // 如需打印加法结果,可添加:cout << " 两数之和:" << add(num1, num2);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 04:42:56