gpt4 book ai didi

c++ - 递归函数不返回指定值

转载 作者:行者123 更新时间:2023-11-30 16:07:45 26 4
gpt4 key购买 nike

我正在尝试调试一个递归函数,用于验证用户输入并在输入正常时返回一个值。该函数如下所示:

double load_price()
{
double price;

Goods * tempGd = new Goods();

cin >> price;

while (!cin)
{
cin.clear();
#undef max
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
cout << endl;
cout << "You didn't enter a number. Do so, please: ";
cin >> price;
} // endwhile
if (!tempGd->set_price(price))
{
cout << endl;
cout << "The price " << red << "must not" << white << " be negative." << endl;
cout << "Please, insert a new price: ";
load_price();
}
else
{
delete tempGd;
return price;
}
}

Goods类的方法set_price()如下所示

bool Goods::set_price(double price)
{
if (price> 0)
{
priceSingle_ = price;
priceTotal_ = price* amount_;
return true;
}
return false;
}

我尝试在纸上画出问题,但我所有的图表似乎看起来都是我的函数的样子。我认为返回存在一些问题,但我不知道问题出在哪里。

非常感谢您的帮助。

最佳答案

您没有使用递归调用的返回值。你需要做的是:

return load_price();

关于c++ - 递归函数不返回指定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59536694/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com