如何解决C ++控制到达非void函数的结尾
我正在尝试创建一个函数,该函数将吸收用户的输入并创建一个倒三角形。但是,在函数结尾(第29行)时出现错误,提示“控制到达非void函数的结尾。”
我认为这与返回值有关,但我不确定。另外,当我将函数内部的int number
更改为int num
时,我收到一条错误消息,“重新定义'num'。”
请帮助。解释发生了什么错误以及如何解决该错误。
谢谢。
#include <iostream>
using namespace std;
int row(int num)
{
int number;
int decreasedNumber;
for(int i = number; i >= 0; i -= 2)
{
decreasedNumber = i;
//decreased number from the outer loop will decrease once again
for(int j = decreasedNumber; decreasedNumber >= 0; decreasedNumber -=2)
{
cout << decreasedNumber << " ";
}
cout << endl;
}
}
int main()
{
//Prompting the user to enter a number and collect that input
cout << "Enter a number: " << endl;
cin >> number;
cout << row(number);
return 0;
}
解决方法
任何返回除void
之外的类型的函数必须在所有控制流路径上从该函数返回一个值。否则,程序将调用未定义的行为。
由于函数的返回类型为int
,因此必须返回一个可从函数转换为int
的值:
int row(int num) {
// ...
return 42; // for example
}
此外,您没有在函数内部使用参数num
,而是在使用未初始化的number
。您可能打算使用num
而不是number
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。