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

C++使用并行数组实现咖啡加料计价功能的修改问题

C++咖啡加料计费程序修改方案

你需要在原有代码的基础上增加外层循环,支撑多次输入校验,同时累计总价格,以下是具体修改逻辑和完整代码:

核心修改点

  • 将用户输入、加料校验、价格计算的逻辑封装到外层循环中,循环终止条件为用户输入XXX
  • 每次循环开始时重置foundIt标志位,避免上一轮的校验结果干扰本轮判断
  • 校验到合法加料后直接将对应价格累加到总价变量orderTotal,同时输出当前加料的单价
  • 所有加料输入完成后统一输出整杯咖啡的最终总价

修改后完整代码

#include <iostream>
#include <string>
using namespace std;
int main()
{
    const int NUM_ITEMS = 5;    // 支持的加料总数
    // 加料名称数组
    string addIns[] = { "Cream", "Cinnamon", "Chocolate", "Amaretto", "Whiskey" };
    // 对应加料单价数组
    double addInPrices[] = { .89, .25, .59, 1.50, 1.75 };
    double orderTotal = 2.00;    // 咖啡基础售价2美元
    const string QUIT = "XXX";
    string addIn;
    // 外层循环:支持多次输入加料
    while (true) {
        cout << "输入咖啡加料名称,输入XXX结束输入:";
        cin >> addIn;
        if (addIn == QUIT) {
            break;
        }
        bool foundIt = false;
        int matchIndex = -1;
        // 校验加料是否在支持列表中
        for (int x = 0; x < NUM_ITEMS; x++) {
            if (addIn == addIns[x]) {
                foundIt = true;
                matchIndex = x;
                break;
            }
        }
        if (foundIt) {
            cout << addIns[matchIndex] << " 价格:$" << addInPrices[matchIndex] << endl;
            orderTotal += addInPrices[matchIndex];
            cout << "当前累计总价:$" << orderTotal << endl;
        } else {
            cout << "抱歉,我们不提供该加料。" << endl;
            cout << "当前累计总价:$" << orderTotal << endl;
        }
    }
    // 输出最终总价
    cout << "整杯咖啡总价格为:$" << orderTotal << endl;
    return 0;
}

运行说明

  • 程序启动后会反复提示输入加料,直到输入XXX结束输入
  • 每次输入合法加料会打印对应单价,同时累加总价
  • 输入不合法加料会给出提示,不会修改当前总价
  • 输入结束后会输出整杯咖啡的最终总价格

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:45:02