C++ 我的功能不是';t返回一个值

C++ 我的功能不是';t返回一个值,c++,C++,我的程序应该计算物品的价格(如果客户购买10件或更多物品,他们可以从物品的正常价格中获得折扣)。除了int-Product::fulfillOrder(int-orderq)函数外,其他功能都运行良好。它说必须返回一个值,但是orderq应该返回一个值供函数使用(我相信我做得对)。以下是问题函数的代码: int Product::fulfillOrder(int orderq) { if (orderq < 0) { cout << "Error

我的程序应该计算物品的价格(如果客户购买10件或更多物品,他们可以从物品的正常价格中获得折扣)。除了
int-Product::fulfillOrder(int-orderq)
函数外,其他功能都运行良好。它说必须返回一个值,但是
orderq
应该返回一个值供函数使用(我相信我做得对)。以下是问题函数的代码:

int Product::fulfillOrder(int orderq)
{
    if (orderq < 0)
    {
        cout << "Error" << endl;
        orderq = 0;
        cout << "Shipped: " << orderq << endl;
    }

    else if (orderq <= Quantity)
    {
        orderq = Quantity;
        Quantity -= orderq;
        cout << "Shipped: " << orderq << endl;
    }
    else
    {
        orderq = Quantity;
        orderq = 0;
        cout << "Shipped: " << orderq << endl;
    }
}
int-Product::fulfillOrder(int-orderq)
{
if(orderq<0)
{

我想你需要补充一下

退货订单Q


函数结尾处。

缺少return语句。如果要返回int,必须返回所需的内容。 我在代码中看到的是,无论条件是什么,都将输入参数设置为0。 您必须检查输入是否大于0,因为如果顺序小于0,则没有意义。这是不可能的。 也就是说,为什么要检查阶数是否小于零?没有意义,检查阶数是否大于,以便进入微积分

当输入为-1时,前两个“if”语句为true。此外,您正在执行以下操作:

orderq = Quantity
Quantity = orderq
如果你想交换值,你需要第三个辅助变量,但要分析你的代码和你需要做什么。你需要先在纸上解决你的问题,然后编码它


祝你好运!

返回语句在哪里?当我添加它时,它给了我一个像9.108+e10这样的数字。我因此删除了它。你认为我应该将它改为像“return 1;”这样吗?显然你的意思是
void Product::fulfillower
。可能会重复编译,并带有所有警告和调试信息(例如,
g++-Wall-Wextra-g
with…)然后使用调试器(例如,
gdb
)一步一步地运行程序,查询其状态,从而了解发生了什么我尝试将其添加到底部,但仍然得到奇怪的值。奇怪的值在某种意义上?你得到了什么回报。我希望是“数量”是一些宏或常量。每次运行它时,我都会得到一个像9.28102+e12这样的数字。数量是一个整数,我必须为每个不同的项目输入。