gpt4 book ai didi

c++ - 乘以小数不会给我一个小数答案来反馈给我的变量

转载 作者:行者123 更新时间:2023-11-30 03:15:07 26 4
gpt4 key购买 nike

目前正在使用 Clion 解决家庭作业问题。我相信我正确地使用了我的 if 语句,以及 double 和 char,但它似乎并没有给我我想要的结果。问题是:

  • 买一送一促销事件:低价商品半价。
  • 如果客户是俱乐部卡成员(member),可额外享受 10% 的折扣。
  • 已加税。

我试着移动括号。我已将 .90 声明为一个设置变量并尝试将其相乘,但仍然总是给我相同的答案。我认为这与我的 if-statemets 有关。

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)时,它都会给我正确的 fullSubtotal,但是当我为该路线寻找相应的 cardPrice(if 语句)时,它会给我 25。总价(含税)为 27.0625。我期望输出是 cardPrice: 22.5 和 finalPrice: 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 添加的条件变为语句,{} block 中的代码之后会覆盖您之前设置的值。修复:

    if(clubCard == 'y' || clubCard == 'Y') {
cardPrice = basePrice * .90;
finalPrice = taxRate * cardPrice;
} else if(clubCard == 'n' || clubCard == 'N') {
cardPrice = basePrice;
finalPrice = taxRate * cardPrice;
}

关于c++ - 乘以小数不会给我一个小数答案来反馈给我的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57283650/

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