当前使用clion来解决家庭作业问题。我相信我正在正确地使用我的if statements,如双重和char,但似乎并没有给我带来的结果。问题问:
- 购买一个获得一半促销的一半:较低的价格项目是半价。
- 如果客户是俱乐部卡成员,则额外折扣10%。
- 税收。
我试图移动括号。我已经将.90宣布为设置变量,并尝试将其乘以乘以,但仍然总是给我相同的答案。我认为这与我的IF-Statemet有关。
using namespace std;
int main() {
double price1, price2, taxRate, fullSubtotal;
char clubCard;
double basePrice, cardPrice, finalPrice;
// ...
cout<<"Enter price of first item: ";
cin>>price1;
cout<<"Enter price of second item: ";
cin>>price2;
cout<<"Does customer have a club card? (Y/N): ";
cin>>clubCard;
cout<<"Enter tax rate, e.g. 5.5 for 5.5% tax: ";
cin>>taxRate;
fullSubtotal = price1 + price2;
taxRate /= 100;
taxRate += 1;
if (price1 > price2) {
price2 /= 2.00;
basePrice = price1 + price2;
if (clubCard == 'y' || clubCard == 'Y') {
cardPrice = basePrice * .90;
finalPrice = taxRate * cardPrice;
}
else (clubCard == 'n' || clubCard == 'N'); {
cardPrice = basePrice;
finalPrice = taxRate * cardPrice;
}
}
else {
price1 /= 2.00;
basePrice = price1 + price2;
if ((clubCard == 'y') || (clubCard == 'Y')) {
cardPrice = basePrice * .90;
finalPrice = taxRate * cardPrice;
}
else ((clubCard == 'n') || (clubCard == 'N')); {
cardPrice = basePrice;
finalPrice = taxRate * cardPrice;
}
}
cout<<"Base price: "<<fullSubtotal<<endl;
cout<<"Price after discounts: "<<cardPrice<<endl;
cout<<"Total price: "<<finalPrice<<endl;
return 0;
}
每次我输入每个价格(10和20(的值时,它给了我正确的全尺寸,但是当我寻求该路线的相应cardprice(如果说明(时,它给了我25.(包括税(为27.0625。我期望输出是CardPrice:22.5,带有最终优势:24.35625
您的问题在else
节中:
if(clubCard == 'y' || clubCard == 'Y') {
cardPrice = basePrice * .90;
finalPrice = taxRate * cardPrice;
} else
(clubCard == 'n' || clubCard == 'N');
{
cardPrice = basePrice;
finalPrice = taxRate * cardPrice;
}
您尝试为else
添加的条件变成语句,并且在覆盖先前设置的值后,{}块中的代码。修复:
if(clubCard == 'y' || clubCard == 'Y') {
cardPrice = basePrice * .90;
finalPrice = taxRate * cardPrice;
} else if(clubCard == 'n' || clubCard == 'N') {
cardPrice = basePrice;
finalPrice = taxRate * cardPrice;
}
您的错误是在内在子句中。
其他条件没有条件,因此(clubCard == 'n' || clubCard == 'N');
是没有用的,但仍然正确的C 。它评估了然后被丢弃的布尔。问题是,由于它没有条件,因此始终执行此后的块。
使用else if
并丢弃半隆,或者掉落整个条件和半隆:
...
if (clubCard == 'y' || clubCard == 'Y') {
cardPrice = basePrice * .90;
finalPrice = taxRate * cardPrice;
}
else {
cardPrice = basePrice;
finalPrice = taxRate * cardPrice;
}
....