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

C++计算找零代码如何删除最后输出末尾的+号

C++找零输出末尾多余+号的解决方法
  • 方法1:前置分隔符法(最推荐,逻辑简单无额外性能开销)
    核心逻辑是用标记位判断是否为第一个输出的面额,仅在非第一个面额前输出加号,避免末尾追加多余符号。
    示例代码:
bool is_first = true;
if (n500 > 0) {
    if (!is_first) cout << " + ";
    cout << n500 << " x 500";
    is_first = false;
}
if (n200 > 0) {
    if (!is_first) cout << " + ";
    cout << n200 << " x 200";
    is_first = false;
}
// 剩余n100到n1的判断逻辑都按上述格式修改即可
return 0;
  • 方法2:写入字符串流后裁剪末尾
    先把所有输出内容写入内存字符串流,最后删除末尾多余的加号和空格,适合不想修改原有判断逻辑的场景。
    示例代码:
#include <sstream>
#include <string>
// ... 其他原有代码
ostringstream oss;
if (n500 > 0) {
    oss << n500 << " x 500 + ";
}
if (n200 > 0) {
    oss << n200 << " x 200 + ";
}
// 剩余n100到n1的判断保持原有逻辑不变,全部写入oss对象
string res = oss.str();
// 输出前删除末尾多余的 " + " 三个字符,需先判断字符串非空避免越界
if (!res.empty()) {
    res = res.substr(0, res.size() - 3);
}
cout << res;
return 0;
  • 方法3:控制台回退删除字符(不推荐,仅适合纯控制台输出场景,输出到文件时会残留控制字符)
    不需要修改原有输出逻辑,全部内容输出完成后用退格符覆盖末尾多余字符即可:
// 原有所有输出逻辑保持不变
cout << "\b\b\b "; // 退格三次删除末尾的 " + ",最后补空格覆盖残留的加号
return 0;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:45:00