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
相关产品推荐
相关产品推荐

