控制到达非无效函数的结尾,C ++

时间:2019-01-14 14:22:08

标签: python c++

我尝试四处搜寻,但并未真正找到问题的答案。我的任务是将以下代码(Python)转换为C ++:

def triangleNumbersBelow(n):
    acc = 1
    num = 2
    print("Triangle numbers below ", n, ":", sep="") 
    while acc < n:
         print(acc) 
         acc += num 
         num += 1
    print()

我的尝试

int triangleNumbersBelow(int n) {
    int acc = 1;
    int num = 2;
    cout << "Triangle numbers below" << n;
    while (acc < n) {
        cout << acc << '\n';
        acc += num;
        num += 1;
    }
    cout << "";
}

但是我收到错误消息“控制到达非空函数的末尾”。有人可以帮我吗?

2 个答案:

答案 0 :(得分:5)

int triangleNumbersBelow(int n) {表示该函数必须返回 int 值,但您从未这样做

实际上,您不必返回值,因为python版本不返回值,因此可以通过void triangleNumbersBelow(int n) {更改其签名


我建议你也

  • cout << "Triangle numbers below" << n;替换为cout << "Triangle numbers below" << n << endl;,否则 n 将被折叠,其第一个值为 acc
  • 删除最后一个cout << "";或将其替换为cout << endl;

答案 1 :(得分:0)

检查翻译后的C ++的函数体

函数的返回类型为int,函数结尾没有返回