最后一行欧普特两个组合输出问题?如果其他语句

Last line ouputs two combined outputs trouble? If else statements

本文关键字:出问题 输出 组合 如果 其他 两个 语句 一行 最后      更新时间:2023-10-16

我很难找到为什么我的程序在我的最后一个输出行中输出两次。

如果我尝试5和500的输入,但是当我尝试在第二个输入(例如500000)中使用更大的数字时,我在最后一个输出行中获得了两个不同的输出。

以下是我的代码。我很确定这是我的最后一个话,但我看不到问题。

任何帮助都会非常感谢。

#include <iostream>
using namespace std;
int main()
{
    double estimatedSales;
    double copyPrice;
    double netMade;
    double firstOp_net;
    double secondOp_net;
    double thirdOp_net;
    double cashBefore = 5000;
    double cashAfter = 20000;
    const double FIRST_RATE = .125;
    const double SECOND_RATE1 = .10;
    const double SECOND_RATE2 = .14;
    double bestPrice;

    cout << "Enter the price for a copy of your noveln";
    cin >> copyPrice;
    cout << "Enter the estimated number of copies that will be soldn";
    cin >> estimatedSales;
    netMade = copyPrice * estimatedSales;
    cout << "It is estimated that your novel will generate $" << netMade << " of revenue.n" ;
    firstOp_net = cashBefore + cashAfter;
    secondOp_net = netMade * FIRST_RATE;
    if (estimatedSales <= 4000) {
        thirdOp_net = netMade * SECOND_RATE1;
    } else { 
        thirdOp_net = netMade * SECOND_RATE2;
    }
    cout << "Royalties you keep for Option 1 is $" << firstOp_net <<"n";
    cout << "Royalties you keep for Option 2 is $" << secondOp_net <<"n";
    cout << "Royalties you keep for Option 3 is $" << thirdOp_net <<"n";
    if (firstOp_net > secondOp_net) {
        bestPrice = firstOp_net;
    } else {
        cout<< "Your best bet would be to go with your 2nd Option for $"<< secondOp_net;
    }
    if (bestPrice > thirdOp_net) {
        cout << "Your best bet would be to go with your 1st Option for $"<< firstOp_net;
    } else {
        cout<< "Your best bet would be to go with your 3rd Option for $"<<thirdOp_net;
    }
    return 0;
}

这就是我得到的:

Enter the price for a copy of your novel
5
Enter the estimated number of copies that will be sold
500000
It is estimated that your novel will generate $2.5e+06 of revenue.
Royalties you keep for Option 1 is $25000
Royalties you keep for Option 2 is $312500
Royalties you keep for Option 3 is $350000
Your best bet would be to go with your 2nd Option for $312500Your best bet would be to go with your 3rd Option for $350000

这就是我所期望的:

Enter the price for a copy of your novel
5
Enter the estimated number of copies that will be sold
500000
It is estimated that your novel will generate $2.5e+06 of revenue.
Royalties you keep for Option 1 is $25000
Royalties you keep for Option 2 is $312500
Royalties you keep for Option 3 is $350000
Your best bet would be to go with your 3rd Option for $350000

代码的问题是最后一部分的逻辑,同时计算特许权使用费。它实际上是简单的逻辑,您可以减少代码的数量。

这是我的解决方案:

#include <iostream>
using namespace std;
int main()
{
double estimatedSales;
double copyPrice;
double netMade;
double firstOp_net;
double secondOp_net;
double thirdOp_net;
double cashBefore = 5000;
double cashAfter = 20000;
const double FIRST_RATE = .125;
const double SECOND_RATE1 = .10;
const double SECOND_RATE2 = .14;
double bestPrice;

cout << "Enter the price for a copy of your noveln";
cin >> copyPrice;
cout << "Enter the estimated number of copies that will be soldn";
cin >> estimatedSales;
netMade = copyPrice*estimatedSales;
cout << "It is estimated that your novel will generate $" << netMade << " of revenue.n" ;
firstOp_net = cashBefore+cashAfter;
secondOp_net = netMade*FIRST_RATE;
if (estimatedSales <= 4000)
    { thirdOp_net = netMade*SECOND_RATE1;
    }
else { thirdOp_net = netMade*SECOND_RATE2;
    }
cout << "Royalties you keep for Option 1 is $" << firstOp_net <<"n";
cout << "Royalties you keep for Option 2 is $" << secondOp_net <<"n";
cout << "Royalties you keep for Option 3 is $" << thirdOp_net <<"n";
double big = firstOp_net;
if(big<secondOp_net)
{
    big = secondOp_net;
}
if(big<thirdOp_net)
{
    big = thirdOp_net;
}

    cout << "Your best bet would be to go with your 1st Option for $"<< big;
    return 0;
}