【问题标题】:Wrong result in c++c++ 中的错误结果
【发布时间】:2021-11-03 01:59:01
【问题描述】:

我想编写货币转换器代码,我做到了, 但是,当我尝试时,结果比我预期的要错, 知道代码有效,但结果不正确,我尝试了所有我知道的方法 ,我是初学者,请回答我的问题,谢谢

#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;
}

【问题讨论】:

  • 但结果不正确,我尝试了所有我知道的方法 -- 结果是什么,你期望什么?
  • 看起来像错字:在应该使用乘法的地方进行除法。除此之外似乎有效:godbolt.org/z/6rrnvKad8
  • 您可以通过制作转换表来简化它。 example

标签: c++ currency converters


【解决方案1】:
#include <iostream>

int main()
{
    std::cout << "1- EGP TO Usd\n";
    std::cout << "2- USD TO EGP\n";
    std::cout << "3- EGP TO SAR\n";
    std::cout << "4- USD TO SAR\n";
    std::cout << "5- SAR TO EGP\n";
    std::cout << "6- SAR TO USD\n";

    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;

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

        switch (num)
        {
        case 1:
            std::cout << (balance * egpToUsd);
            break;
        case 2:
            std::cout << (balance * usdToEgp);
            break;
        case 3:
            std::cout << (balance * egpToSar);
            break;
        case 4:
            std::cout << (balance * usdToSar);
            break;
        case 5:
            std::cout << (balance * sarToEgp);
            break;
        case 6:
            std::cout << (balance * sarToUsd);
            break;
        default:
            std::cout << "Error please select from list\n";
            break;
        }    
    return 0;
}

不要使用“使用命名空间标准;”那是不好的做法,为什么在某些情况下要划分,这是一个简单的数学。我希望你得到你的解决方案

【讨论】:

  • 请在您的回答中提供更多详细信息。正如目前所写的那样,很难理解您的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-30
  • 1970-01-01
相关资源
最近更新 更多