c++ - 使用 if if 语句检查 C++ 中的范围

标签 c++ if-statement range

我试图使用 if 语句来检查输入的数字是否在我允许的范围内。但显然它不起作用。这是我的 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;                                      
}                             

最佳答案

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;
}

关于c++ - 使用 if if 语句检查 C++ 中的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21860655/

相关文章:

C#:合并相邻范围

c++永久离线计数器

c++ - Qt不能继承属性

javascript - 可以从给定订单大小的数组中取出多少个项目

C++ 11,如何在 #if 中使用 const

python - 如果我重用它们,我应该缓存范围结果吗?

ios - Swift:将 Int 转换为 UInt32,以及如何解包可选

c++ - 链接 Fortran 和 C++ 库时优化丢失了吗?

c++ - 为什么不能在函数中使用模板别名作为参数并自动推导?

java - 创建一个在激活 actionListener 时在小程序上绘制的方法