我试图调试一个递归函数,用于验证用户输入,并在输入正常时返回一个值。函数如下所示:
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;
}
}
类的set_price()方法如下所示
^{pr2}$我试着在纸上画出这个问题,但是我所有的图表看起来都和我的函数看起来一样。我想退货有一些问题,但我不知道在哪里。在
我们将不胜感激。在
您没有使用递归调用的返回值。你需要做的是:
谁说服你用递归来解决那个问题的?在
相关问题 更多 >
编程相关推荐