我正在尝试编写一个打印出这种模式的嵌套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;
}
如果有人可以帮我解决这个问题,我会很感激。
答案 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