這裏是我的函數定義,根據兩個出價之間的關係計算拍賣中的贏家。它沒有提供正確的「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」更好。另外,請爲您的問題選擇更多提示性標題。 –
當發佈這樣的問題時,在觀察錯誤行爲的地方顯示功能的實際輸入是有幫助的。這比「這裏是我的代碼,它不工作,告訴我爲什麼」更體貼。 –