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
相关产品推荐
相关产品推荐

