代码只打印一个倍数而不是 3

Code is printing only one multiple instead of 3

本文关键字:一个 打印 代码      更新时间:2023-10-16

我正在编写一个代码,它使用函数显示整数的前三个倍数。但是当我运行它时,它只显示第一个倍数。

#include <iostream>
#include <vector>
// Defined first_three_multiples() here:
std::vector <int> first_three_multiples(int num) {
  std::vector <int> output;
  for (int i=1; i<4; i++) {
    output.push_back(num*i);
    return output;
  }
}
int main() {
  for (int element : first_three_multiples(8)) {
    std::cout << element << "n";
  }
}

预期输出:8 16 24

实际输出:8

您已将return语句放在for循环中。建议遵循正确的代码缩进,以避免此类错误再次发生。

#include <iostream>
#include <vector>
std::vector<int> first_three_multiples(int num)
{
    std::vector<int> output;
    for (int i = 1; i < 4; i++) {
        output.push_back(num * i);
        # you put a return statement here, which returns only 8
    }
    return output; # this would return all three values 
}
int main()
{
    for (int element : first_three_multiples(8)) {
        std::cout << element << "n";
    }
}

简单错误

for (int i=1; i<4; i++) {
 output.push_back(num*i);
 return output;
}

应该是

for (int i=1; i<4; i++) {
    output.push_back(num*i);
}
return output;

正确缩进是值得的,因为它使这样的错误更容易发现(并首先避免(。

相关文章: