我一直在尝试在c ++中为循环组合创建不同的循环组合,但我似乎找不到正确的。
我希望我的输出看起来像这样:
如何在不使用数组的情况下显示它?
编辑:我试过这样但我不能在另一端复制它。到目前为止,这是我得到的最接近的输出。for(int i = 0; i < 6; i++)
{
cout<<"*";
for(int j = 5; j > i; j--)
{
cout<<" ";
}
for(int k = 0; k <= i; k++)
{
cout<<"*";
}
cout<<endl;
}
输出:
答案 0 :(得分:0)
你有九条线;让我们将它们编号为0到8.行号 n 包含:
1 + (4 - abs(4 - n))
星号(1,2,3,4,5,4,3,2,1)2 * abs (4 - n)
个空格(8,6,4,2,0,2,4,6,8)1 + (4 - abs(4 - n))
星号(1,2,3,4,5,4,3,2,1)答案 1 :(得分:-2)
一种选择是增加每行上的星数,然后在到达中点后返回。
void printChar(char c, int count)
{
for (int i = 0; i < count; i++)
std::cout << c;
}
int main()
{
const int len = 10;
int stars = 0;
while (++stars <= len / 2)
{
int spaces = len - stars * 2;
printChar('*', stars);
printChar(' ', spaces);
printChar('*', stars);
std::cout << "\n";
}
stars--;
while (--stars > 0)
{
int spaces = len - stars * 2;
printChar('*', stars);
printChar(' ', spaces);
printChar('*', stars);
std::cout << "\n";
}
return 0;
}
void printChar(char c, int count)
{
for (int i = 0; i < count; i++)
std::cout << c;
}
int main()
{
const int len = 10;
int stars = 0;
while (++stars <= len / 2)
{
int spaces = len - stars * 2;
printChar('*', stars);
printChar(' ', spaces);
printChar('*', stars);
std::cout << "\n";
}
stars--;
while (--stars > 0)
{
int spaces = len - stars * 2;
printChar('*', stars);
printChar(' ', spaces);
printChar('*', stars);
std::cout << "\n";
}
return 0;
}