我的函数没有返回值

时间:2017-07-09 02:36:07

标签: c++

我的程序应该计算物品的价格(如果物品购买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;
    }
}

2 个答案:

答案 0 :(得分:1)

我认为你需要添加

  

return orderq;

在功能结束时。

答案 1 :(得分:0)

缺少return语句。如果你想返回一个int,你必须返回你需要的东西。 我在你的代码中看到的是,无论条件是什么,你都将输入参数设置为0。 您必须检查输入是否大于0,因为如果订单小于0则没有意义。这是不可能的。 这意味着为什么要检查订单是否低于零?没有意义,检查它是否更大,以便进入微积分。

当输入为-1时,两个第一个'if'语句为真。你也在做类似的事情:

orderq = Quantity
Quantity = orderq

如果要交换值,则需要第三个辅助变量,但需要分析代码以及需要执行的操作。您需要先在纸上解决问题。然后编码。

祝你好运!