gpt4 book ai didi

C++ && 条件从未执行

转载 作者:太空宇宙 更新时间:2023-11-04 14:53:38 28 4
gpt4 key购买 nike

我正在尝试为计算长途电话费率的作业创建一个程序,该程序接受开始时间和通话时长,并输出总成本和净成本。涉及到几个参数,我已经在条件语句中实现了,

  • 在下午 6:00 (1800) 或之后但在上午 8:00 (800) 之前开始的任何通话均享受 50% 的折扣。

  • 所有通话均需缴纳 4% 的联邦税。

  • 正常费率是每分钟 0.35 美元。

  • 任何超过 60 分钟的通话都可享受 16% 的费用折扣(减去任何其他折扣后但未加税)。

但是,第一个条件代码从未执行过,我已经尝试了几种不同的操作数,但仍然没有弄明白。

#import <iostream>


using namespace std;

int main() {

//declare variables
int startTime;
int callLength;
double grossCost = 0;
double netCost;
const double callRate = 0.35;
const double fedTax = 0.04;
const double discount1 = 0.50;
const double discount2 = 0.16;


//begin user prompt
cout << "Enter start time: " << endl;
cin >> startTime;
cout << "Enter length of call in minutes: " << endl;
cin >> callLength;

//define our grossCost
grossCost = (callLength * callRate);

//lez do some conditionals
if ((startTime >= 1800) && (startTime <= 800)){

netCost = grossCost - (grossCost * discount1);
netCost *= fedTax;
}

else if (callLength > 60){
netCost = grossCost - (grossCost * discount2);
netCost *= fedTax;
}
else{
netCost = (grossCost * fedTax);
}

//print out our final costs
cout << "gross cost : " << "$" << grossCost << endl;
cout << "net cost: " << "$" << netCost << endl;

return 0;

}

因此,在尝试输入时:

Enter start time: 2322
Enter length of call in minutes: 67
gross cost : $23.45
net cost: $0.78792

netcost 没有被正确评估,因为它跳过了第一个条件,即使 startTime 的值符合参数。输出应该是:

    Enter start time: 2322
Enter length of call in minutes: 67
gross cost: $23.45
net cost: $10.24

我不是在找人帮我做功课,只是一些指引我朝着正确的方向前进,我已经多次检查条件,但我仍然对为什么它没有评估感到困惑。感谢任何帮助,谢谢。

最佳答案

你这里有一个逻辑错误:一个数不能同时大于或等于 1800 小于或等于 800。修改第一个条件。我会把它分成两部分

if((time >= 1800 & <=2400) || (time >= 0 && time <= 800)) .

这里实际的逻辑错误是下午 6 点之后早上 8 点之前 的调用将存在于不同的日子!因此,我们确实需要两个条件来同时检查日期的边界。

根据@Reto Koradi 的评论编辑:

如果我们省略边界检查,结果不会改变。如上所述,更改的要点是突出两个条件的互斥性,这是通过交换 && 来实现的。用||出来:

if (time >= 1800 || time <= 800)

关于C++ && 条件从未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35143589/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com