gpt4 book ai didi

c++ - 我的 getNumber() 函数有什么问题?

转载 作者:行者123 更新时间:2023-11-27 23:11:36 24 4
gpt4 key购买 nike

我正在为类制作一个程序,如果你运行它并输入正数,作业的目的就很明确了。但是,看来我的 int getNumber();功能无法正常工作。该函数的目的是收集单个正数并将其返回。这是代码:

    int getNumber()
{
int number;
cin >> number;
if (number < 0)
{
cout << endl; "Number cannot be negative: Please enter a nonnegative value: ";
cin >> number;
}
else
return (number);
}

如果您需要程序的其余部分,请告诉我。我称之为 i = getNumber(); movies = new int[i];

编辑:抱歉,我忘了提到问题是它不会打印出 cout 行,但会正确结束该行。发布后我立即想起 if-else 是一个条件子句而不是循环并切换它但仍然有同样的问题。我没有意识到它仍然会接受负数,因为我总是在程序无法打印“数字不能为负数...”这一行时结束程序,我放了一个;。而不是 <<endl 之后,但感谢您解决了我不知道会遇到的问题。很抱歉没有在第一时间真正说出这个问题。

最佳答案

只有 if 条件的一个分支返回一个值。如果输入的第一个数字是负数,则该函数不返回任何内容。

您的编译器应该对此发出警告。

您可能希望将 if 替换为 while 循环,该循环会重复执行直到输入可接受的数字:

int getNumber()
{
int number;
cin >> number;
while (number < 0)
{
cout << endl; "Number cannot be negative: Please enter a nonnegative value: ";
cin >> number;
}
return number;
}

关于c++ - 我的 getNumber() 函数有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19962343/

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