C语言:如何在while循环中累加商品总价并保存到整数变量
问题解决:购物金额累加功能实现
你的问题核心是没有单独存储累计总金额的变量,每次输入新商品时,原有金额数据被覆盖丢失。以下是修正后的代码及说明:
#include <stdio.h> int main() { int status = 1; int unit_price; // 存储当前商品单价 int quantity; int current_item_total; // 当前商品的总价 int total_sum = 0; // 累计总金额,初始化为0 while(status != 0){ printf("输入商品单价: "); scanf("%d", &unit_price); printf("输入商品数量: "); scanf("%d", &quantity); // 计算当前商品总价并累加到总金额 current_item_total = unit_price * quantity; total_sum += current_item_total; printf("当前商品总价: R$ %d\n", current_item_total); printf("累计购物总金额: R$ %d\n", total_sum); printf("输入操作码(0结束,其他继续): "); scanf("%d", &status); } return 0; }
关键修改说明:
- 新增
total_sum变量,专门用于保存所有商品的累计金额,初始值设为0,每次循环将当前商品的总价追加进去。 - 将原有的
value拆分为unit_price(单价)和current_item_total(当前商品总价),避免变量复用导致旧数据被覆盖。 - 输出时同时展示当前商品总价和累计总金额,更贴合购物场景的使用需求。
- 移除了代码中未使用的
cod和counter变量,简化结构。
内容的提问来源于stack exchange,提问作者Daniel Montenegro
相关产品推荐
相关产品推荐

