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

C++编写货币转换器程序运行结果不符合预期求助

问题原因分析

你代码里的汇率换算逻辑搞反了乘法和除法的使用场景,具体问题如下:

  • 选项1是EGP转USD,你定义的egpToUsd = 0.064意思是1 EGP可以兑换0.064 USD,正确的计算应该是金额 × 汇率,你写反成了除法
  • 选项3是EGP转SAR,你定义的egpToSar = 0.24意思是1 EGP可以兑换0.24 SAR,正确计算应该是金额 × 汇率,你错误用了除法
  • 选项6是SAR转USD,你定义的sarToUsd = 0.27意思是1 SAR可以兑换0.27 USD,正确计算应该是金额 × 汇率,你错误用了除法
修复后的完整代码
#include <iostream>
using namespace std;

int main()
{
    cout << "1- EGP TO USD" << endl;
    cout << "2- USD TO EGP" << endl;
    cout << "3- EGP TO SAR" << endl;
    cout << "4- USD TO SAR" << endl;
    cout << "5- SAR TO EGP" << endl;
    cout << "6- SAR TO USD" << endl;

    int num;
    double balance;

    double egpToUsd = .064;
    double usdToEgp = 15.70;
    double egpToSar = .24;
    double usdToSar = 3.75;
    double sarToEgp = 4.19;
    double sarToUsd = .27;

    cout << "Enter a Num: ";
    cin >> num;
    cout << "Enter your balance: ";
    cin >> balance;

    if (num >= 1 && num <= 6)
    {
        switch (num)
        {
        case 1:
            cout << (balance * egpToUsd);
            break;
        case 2:
            cout << (balance * usdToEgp);
            break;
        case 3:
            cout << (balance * egpToSar);
            break;
        case 4:
            cout << (balance * usdToSar);
            break;
        case 5:
            cout << (balance * sarToEgp);
            break;
        case 6:
            cout << (balance * sarToUsd);
            break;
        }
    }
    else {
        cout << "Error please select from list" << endl;
    }

    return 0;
}
验证示例

用100 EGP转USD测试:100 × 0.064 = 6.4 USD,和实际汇率换算结果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 14:12:03