C++ 控件到达非空函数的结尾

Tia*_*gin 0 c++ function

我正在尝试创建一个函数,该函数将从用户那里获取输入并创建一个倒三角形。但是,我在函数的末尾(第 29 行)收到一个错误,指出“控制到达非空函数的末尾”。

我认为它与返回值有关,但我不确定。此外,当我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;
}
Run Code Online (Sandbox Code Playgroud)

cig*_*ien 5

任何返回类型以外的函数都void 必须从所有控制流路径上的函数返回一个值。否则,程序会调用未定义的行为。

由于您的函数具有int返回类型,因此您必须int从函数返回一个可转换为 an的值:

int row(int num) {
  // ...
  return 42;  // for example
}
Run Code Online (Sandbox Code Playgroud)

此外,您没有在函数num内部使用参数,而是使用number未初始化的参数。您可能打算使用num而不是number.