我目前正在采用C++类和我们的任务之一,由于某种原因我有一点麻烦。C++如果语句逻辑
要求用户自己购买的总金额在商店和 计算基于以下规则的优惠:
- 如果他们花费了$ 50给他们10%的折扣
- 如果他们花费了$ 75,折扣为15%
- 如果他们花费了$ 100,折扣为25%
- 最后,如果他们花费250美元或更多,他们将获得40%的折扣。
- 显示购买金额,扣除折扣并显示结果。
这里是我迄今编写的代码:
#include <iostream>
using namespace std;
int main() {
double amount,discount=0.0;
cout<<"Enter the total amount of your purchase: $";
cin>>amount;
cout<<endl;
if (amount<50)
cout<<"You do not recieve a discount"<<endl;
else if(amount<=50.0)
{
discount=0.1*amount;
cout<<"Discount: $"<<discount<<endl;
amount=amount*0.9;
cout<<"Total Amount: $"<<amount<<endl;
return 0;
}
else if(amount<=75.0)
{
discount=0.15*amount;
cout<<"Discount: $"<<discount<<endl;
amount=amount*0.85;
cout<<"Total Amount: $"<<amount<<endl;
return 0;
}
else if(amount<=100.0)
{
discount=0.25*amount;
cout<<"Discount: $"<<discount<<endl;
amount=amount*0.75;
cout<<"Total Amount: $"<<amount<<endl;
return 0;
}
else if(amount<=250.0)
{
discount=0.4*amount;
cout<<"Discount: $"<<discount<<endl;
amount=amount*0.6;
cout<<"Total Amount: $"<<amount<<endl;
return 0;
}
return 0;
}
我没有收到例如正确的数字,如果我输入74它会给我11.1 我觉得它是原因很简单,为什么我收到了错误的号码,但我不知道为什么
如果缩进代码,逻辑将更容易遵循。 – OJFord 2014-09-23 00:04:27
您需要反转逻辑。如果(amount> 250){}否则if(amount> 100){} ... else {}'。其他将指最低折扣。 – royhowie 2014-09-23 00:04:51
您不需要在每个其他子句的末尾返回。 – 2014-09-23 00:12:43