2014-02-18 59 views
1

我試圖使用if語句來檢查輸入的數字是否符合我允許的範圍。但顯然它不起作用。這裏是我的if語句在C++中使用if語句檢查範圍

用戶輸入的重量和我檢查它是否是小/重量頂部

const float SMALL_WEIGHT  = 2.3f;  // low end 1st range weight 
    const float TOP_SMALL_WEIGHT = 4.3f;  // top end 1st range weight 

    cout << "Enter the weight of the laptop: "; 
    cin >> weight; 

      if (weight < SMALL_WEIGHT && weight > TOP_SMALL_WEIGHT) 
      { 
       cout << "The weight " << weight << " is not between " 
        << SMALL_WEIGHT << " and " << TOP_WEIGHT << endl; 
       return 1; 
      } 

之間我試圖用邏輯或||但它仍然不起作用。

編輯:這是整個代碼

#include <iostream>  
#include <iomanip>  
using namespace std; 

const float SALE_START_PRICE = 500.0f; // discount if more than 500 
const float DISCOUNT_PCT  = .15f;  // 15% discount 
const float TAX_PCT    = .075f;  // tax is 7.5% 

const float SMALL_WEIGHT  = 2.3f;  // low end 1st range weight 
const float TOP_SMALL_WEIGHT = 4.3f;  // top end 1st range weight 
const float TOP_MID_WEIGHT  = 5.8f;  // top 2nd range weight 
const float TOP_WEIGHT   = 7.9f;  // top 3rd range weight 

const float SMALL_SHIP   = 5.4f;  // 1st range basic ship charge 
const float MID_SHIP   = 5.8f;  // 2nd range basic ship charge 
const float TOP_SHIP   = 6.2f;  // 3rd range basic ship charge 

const float SMALL_SHIP_PCT  = .025f; 
const float MID_SHIP_PCT  = 2.75f; 
const float TOP_SHIP_PCT  = 3.5; 

int main() 
{ 
    float price, weight; 
    float discountAmount, salePrice;        
    float taxAmount, shippingCharges, totalSaleAmount; 

    cout << "Enter the original price of the laptop: ";    
    cin >> price; 

    cout << "Enter the weight of the laptop: "; 
    cin >> weight; 


    if (weight < SMALL_WEIGHT && weight > TOP_SMALL_WEIGHT) 
    { 
     cout << "The weight " << weight << " is not between " 
      << SMALL_WEIGHT << " and " << TOP_WEIGHT << endl; 
     return 1; 
    } 

    if (price > SALE_START_PRICE) 
    { 
     discountAmount = price * DISCOUNT_PCT; 
    } 
    else 
     discountAmount = 0.00; 

    taxAmount = price * TAX_PCT; 
    salePrice = price - discountAmount; 


    if (weight < TOP_SMALL_WEIGHT) 
     shippingCharges = SMALL_SHIP + (salePrice * SMALL_SHIP_PCT); 
    else if (weight >= TOP_SMALL_WEIGHT && weight < MID_SHIP) 
     shippingCharges = MID_SHIP + (salePrice * MID_SHIP_PCT); 
    else 
     shippingCharges = TOP_SHIP + (salePrice * TOP_SHIP_PCT); 

    totalSaleAmount = salePrice + taxAmount + shippingCharges; 

    cout << fixed << showpoint << setprecision(2); 
    cout << "The original price : $" << price << endl; 
    cout << "The discount  : $" << discountAmount << endl; 
    cout << "The sale price  : $" << salePrice << endl; 
    cout << "The sales tax  : $" << taxAmount << endl; 
    cout << "The shipping  : $" << shippingCharges << endl << endl; 
    cout << "The total sale  : $" << totalSaleAmount << endl; 

    return 0;          
}        
+3

''||應該工作。也許你應該發佈完整的代碼。 – herohuyongtao

+0

什麼類型的體重被宣稱爲? –

+0

浮動,我發佈了整個代碼 – Na9er

回答

3

weight不能同時小於SMALL_WEIGHT並大於TOP_SMALL_WEIGHT

我想你想使用一個邏輯或||所以就變成:

if (weight < SMALL_WEIGHT || weight > TOP_SMALL_WEIGHT) 
{ 
    cout << "The weight " << weight << " is not between " 
     << SMALL_WEIGHT << " and " << TOP_WEIGHT << endl; 
    return 1; 
} 
+0

我正要按完全相同的答案,:P的帖子。 –

+0

謝謝大家,當我將它改爲或。我試着把權重設置爲5.5(這是在範圍之間),它給出了錯誤信息,就好像我在它之外輸入了一些東西。 – Na9er

+1

@ na9er 5.5根據您發佈的代碼超出範圍。 –