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

C++通过for循环实现贷款统计表列数据同行对齐

问题根因

原代码outputStatistics方法里写了两个完全独立的for循环:

  • 第一个循环逐行输出月份序号,每输出一个月份就直接换行
  • 第二个循环逐行输出月供金额,每输出一个月供就直接换行
    两个循环先后执行,导致月份列和月供列被拆成上下两个独立块,无法在同一行对齐。另外原第二个循环从j=0开始计数,会比实际月份数多输出一行月供数据。
修改方法

不需要调整输出为横向布局,也不需要改动原有类继承关系、输入逻辑、利息/月供计算逻辑,只需要把两个独立循环合并为单个循环即可:每轮循环里依次输出当前行的月份、制表分隔符、月供金额,最后再换行,完全符合用for循环批量输出的需求。

修改后的核心代码

仅需要替换outputStatistics方法的实现即可,其余代码完全保留:

void outputStatistics()
{
    cout<<"Month\tPayment(RM)\tPrincipal(RM)\tInterest(RM)\tBalance(RM)\n";
    for(int i = 1; i <= month; i++)
    {
        // 同一行内输出当前行所有列数据,最后再换行
        cout << i << "\t" << month_payment << endl;
    }
}
补充说明
  • 输出时用\t制表符分隔列,和原有表头的分隔规则保持一致,可自动实现列对齐
  • 循环范围和总月份数完全匹配,修复了原代码多输出一行月供的bug
  • 后续需要补充Principal、Interest、Balance列的计算值时,只需要在当前循环的cout语句中按顺序追加\t和对应变量即可,不需要调整整体循环结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 08:54:23