C语言储蓄利息计算代码如何实现上月余额累计结转功能
C语言储蓄账户跨月利息结转代码调整方案
原有代码问题
原有代码未设置跨月余额存储变量,每月计算时会覆盖上月的储蓄金额,无法实现本息跨月累加结转,同时利息计算逻辑硬编码不符合实际计息规则。
调整后可运行代码
#include <stdio.h> // 定义月利率常量 0.417%,可根据实际需求修改 #define MONTH_INTEREST_RATE 0.00417f int main() { // 新增total_balance存储累计结转本息,初始余额为0 float monthly_add, monthly_interest, total_balance = 0.0f; int month, months = 6; for (month = 1; month <= months; ++month) { printf("请输入第%d月的新增储蓄金额:", month); scanf("%f", &monthly_add); // 先累加当月新增存款到总余额 total_balance += monthly_add; // 按当前总余额计算当月利息 monthly_interest = total_balance * MONTH_INTEREST_RATE; // 利息计入总余额,结转到下月 total_balance += monthly_interest; printf("第%d月:新增存款%.2f,当月利息%.2f,账户总余额(可结转下月)%.2f\n", month, monthly_add, monthly_interest, total_balance); } return 0; }
核心修改说明
- 新增累计本息变量
total_balance,全程保留账户余额数据,实现跨月金额自动结转累加 - 调整计息逻辑:每月利息基于「上月结转余额+当月新增存款」的总金额计算,符合储蓄账户实际计息规则
- 固定参数月利率定义为宏常量,后续调整利率时只需修改一处即可,无需遍历代码修改
- 输出信息拆分了新增存款、当月利息、结转总余额三个维度,数值展示更清晰
内容的提问来源于stack exchange,提问作者Nathan
相关产品推荐
相关产品推荐

