嵌套在C ++中的循环三角形

时间:2014-03-17 01:47:30

标签: c++ for-loop

我正在尝试编写一个打印出这种模式的嵌套for循环:

x
xxx
xxxxx
xxxxxxx
xxxxxxxxx
xxxxxxxxx
xxxxxxx
xxxxx
xxx
x

然而,我不知道如何让coloumn比最后一颗星还多两颗星。

这是我到目前为止的代码:

#include <iostream>
using namespace std;

int main()
{
    for(int r = 1; r <= 5; r++)
    {
        for(int c = 1; c <= r; c++)
            cout << "*";
            cout<< endl;
    }
    for(int r1 = 5; r1 >= 1; r1--)
    {
        for(int c1 = 1; c1 <= r1; c1++)
            cout << "*";
            cout<< endl;
    }
    return 0;
}

如果有人可以帮我解决这个问题,我会很感激。

1 个答案:

答案 0 :(得分:2)

你现在拥有的是关闭,内部循环终止条件是错误的。 请注意,您需要打印1,3,5,7,9 * s,而行索引为1,2,3,4,5。因此,要打印的*的数量为:2*rowIndex -1

for(int r = 1; r <= 5; r++){
    for(int c = 1; c <= 2*r -1; c++)
                   //^^^Here is the diff
             cout << "*";
        cout<< endl;
}
for(int r1 = 5; r1 >= 1; r1--){
        for(int c1 = 1; c1 <= 2*r1 -1; c1++)
                        //^^same here
                cout << "*";
        cout<< endl;
}
return 0;

您可以在此处看到现场演示:Print Triangle Star pattern