仅在向量的末尾打印新行 - 在“for”循环之外的“if”语句

时间:2017-09-22 14:42:42

标签: c++ loops for-loop if-statement vector

代码:

#include <iostream>
#include <vector>

int main () {

std::cout << "Please, enter the number of iterations: ";    //Inputs

int iterations;
std::cin >> iterations;

std::cout << "Which term would you like to know: ";

int term;
std::cin >> term;   //End inputs

std::vector<int> series;     //definition of vector "series"

for (int n = 1;  n <= iterations; n++) {    //creation of "series"

    int next = (2 * n - 3);
    series.push_back(next);

}

std::cout << "The value of term "   //prints the n term
          << term
          << " is: "
          << series[term-1]         //term-1 "adjust" the indexing
          << std::endl;

std::cout << "The entire serie up to "
          << iterations
          << " terms is: ";

for (int i = 0;  i < series.size(); i++) {      //prints (elements of vector) "series"

    std::cout << series[i] << ' ';

    if (i == series.size()-1) {     //new line only at the end the series

        std::cout << std::endl; 
    }

}

return 0;

}

我得到了9/10这个评论:“如果条件内部循环只满足一次,但每次都检查。移动到循环之外”。 我真的不知道如何将if语句放在循环之外。 for-if语句的范围是仅在向量“series”的末尾添加一个新行。 我无法想到任何其他事情,但我确信我经验丰富,还有另一个更优雅的解决方案。 我在这里问,因为我必须提交另一个作业,我不想提交相同的错误。

PS:另一个评论是:轻度过度评论。我真的评论过多吗?

2 个答案:

答案 0 :(得分:0)

您在endl的末尾打印for loop,这样您就可以在离开循环时添加endl行并删除for循环中的行,它会给你相同的结果

代码:

for (int n = 1;  n <= iterations; n++) {    //creation of "series"

    int next = (2 * n - 3);
    series.push_back(next);

}

std::cout << "The value of term "   //prints the n term
          << term
          << " is: "
          << series[term-1]         //term-1 "adjust" the indexing
          << std::endl;

std::cout << "The entire serie up to "
          << iterations
          << " terms is: ";

for (int i = 0;  i < series.size(); i++) {      //prints (elements of vector) "series"

    std::cout << series[i] << ' ';
}
std::cout << std::endl; 
return 0;

}

答案 1 :(得分:0)

您要做的是在最后一个元素后打印换行符。在这里,如果是最后一个元素,则检查每个元素。但是,您不需要这样做。

另一种方法“在最后一个元素之后”是“在所有元素之后”,所以在循环之后。只需使用for循环处理所有元素,然后打印换行符。

我没有给出代码,因为它是一个赋值,但这应该足够清楚了。

至于评论:不要记录明显的。当然,对于不同的层次,显而易见的是不同的东西。但是对于“系列”向量的声明,注释不会向代码添加任何内容,例如。