- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试为计算长途电话费率的作业创建一个程序,该程序接受开始时间和通话时长,并输出总成本和净成本。涉及到几个参数,我已经在条件语句中实现了,
在下午 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/
背景 我最近在 merge 期间遇到了一个意外未 merge 的文档文件的问题。 无论出于何种原因,我搞砸了 merge 并有效地删除了文件(和其他几个文件),因为我忘记了它们的存在。 现在我想查看我
我在我的网站上使用旧的 mysql 版本和 php 版本 4。 我的表结构: | orders_status_history_id | orders_id | orders_status_id |
我是一名优秀的程序员,十分优秀!