c++ if else语句没有显示正确的值
C++ if else statements does not display the correct values
我应该让用户输入他们的购买价格来查找运费。我遇到的问题是,如果我输入任何高于1000美元的值,那么运输价值将始终是8美元。
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
void main()
{
double saleAmount, shipping = 0;
cout << "Enter a purchase amount to find out your shipping charges." << endl;
cout << "Please enter the amount of your purchase: $" << endl; cin >> saleAmount;
if (saleAmount > 5,000.00)
{
shipping = 20.00;
}
else if (saleAmount > 1,000.00)
{
shipping = 15.00;
}
这是它不识别超过$10.00的运费的地方。如果我在主机应用中输入1500,它会告诉我运费是10美元。价值超过5000美元的也一样。我想看看出了什么问题,可是我怎么也找不到。
else if (saleAmount > 500.00)
{
shipping = 10.00;
}
else if (saleAmount > 250.00)
{
shipping = 8.00;
}
else
{
shipping = 0.00;
}
if (shipping == 0.00)
{
cout << "Error incorrect input" << endl;
}
else
{
cout << "The shipping charge on a purchase of $ " << saleAmount << " is $" << shipping << endl;
}
}
语句
if (saleAmount > 5,000.00)
等价于:
if ( (saleAmount > 5) , 000.00)
计算结果为
if ( 0.000 )
因此,if
语句下的代码块永远不会执行。
正如在评论中指出的那样,从数字中删除,
。用途:
if (saleAmount > 5000.00)
这段代码最严重的问题在这几行:
if (saleAmount > 5,000.00)
else if (saleAmount > 1,000.00)
当我用GCC编译程序并打开所有警告时,这些行产生以下消息:
warning: left operand of comma operator has no effect
你现在明白问题是什么了吗?
删除,从5000和1000,它应该工作。
if (saleAmount > 5000.00)
else if (saleAmount > 1000.00)
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 字符串-C++后显示的随机字符
- 继承期间显示未知行为的子类
- 仅使用绝对值对数组进行排序,并在C++中显示实际值
- 我的简单if-else语句是如何无法访问的代码
- 如何将enable-if与模板参数和参数包一起使用
- 无论条件是否为true,if总是在c++中执行
- Arduino:for/while/if在void setup()或void loop()之前?——错误:之前需要不合格
- 程序崩溃并显示"std::out_of_range"错误
- if/else 语句输出由于加号或减号而未显示正确的消息
- c++ IF 语句执行,但添加 ELSE 会显示错误
- if/else 循环:C++程序:不会显示最终提示/最终循环
- if, else if, else 函数未准确显示结果
- 如何使用我的 if-else 语句根据用户权重的输入执行特定操作,然后将其显示到控制台?
- C++-(If语句)总是显示Else
- Visual Studio在添加if语句后显示C++模糊性错误
- c++ if else语句没有显示正确的值
- c++ If语句问题-显示错误信息
- Arduino 代码异常 - LCD 出现故障并显示多个 'if' 语句