这里是我的函数定义,根据两个出价之间的关系计算拍卖中的赢家。它没有提供正确的“winningBid”,并且即使在这些条件未被满足时也经常跳到printErrorMessage 4。C++函数不起作用
void calcWinner(string bidder1, string bidder2, string lotName,
double bid1, double bid2, double reservePrice)
{
double winningBid;
string winningBidder;
if (bid2<reservePrice && bid1<reservePrice)
printErrorMessage(4);
else if (bid2>=reservePrice && bid1>=reservePrice)
{
if (bid2<bid1){
winningBid=bid2+.50;
winningBidder=bidder1;}
else if (bid2>=bid1 && bid2<(bid1+.50)){
winningBidder=bidder1;
winningBid=bid1;}
else if (bid2>(bid1+.50)){
winningBidder=bidder2;
winningBid=(bid1+.50);}
}
else if (bid2>reservePrice && bid1>=reservePrice){
winningBidder=bidder1;
winningBid=reservePrice;}
else if (bid2>=reservePrice && bid1<reservePrice){
winningBidder=bidder2;
winningBid=bid2;}
printWinner(winningBidder, lotName, winningBid);
}
-1您的代码很难阅读。缩小嵌套的“if”更好。另外,请为您的问题选择更多提示性标题。 –
当发布这样的问题时,在观察错误行为的地方显示功能的实际输入是有帮助的。这比“这里是我的代码,它不工作,告诉我为什么”更体贴。 –