三角形图案
Triangle pattern
本文关键字:三角形 更新时间:2023-10-16
我正在尝试获得这样的输出
*****
****
***
**
*
但是我的代码给出了错误的输出。我的输出是:
Please enter the size: 9
*********
********
*******
******
*****
****
***
**
*
我的代码是:
#include<iostream>
using namespace std;
int main (void)
{
int row, column, size;
cout << "Please enter the size: ";
cin >> size;
cin.ignore(999,'n');
for (row = size; row <= size; row--)
{
if (row <= 0)
{
break;
}
else if (row == size)
{
for (column = 1; column <= size; column++)
{
cout << "*";
}
}
else
{
for (column = row; column <= row; column--)
{
if (column <= 0)
{
break;
}
cout << ' ';
}
for (column = row; column <= row; column--)
{
if (column <= 0)
{
break;
}
cout << "*";
}
}
cout << endl;
}
cout << endl;
cout << "Please press enter to finish...";
cin.ignore(999,'n');
return 0;
}
我不知道出了什么问题以及它在哪里,但我认为问题可能出在 else 循环中。
你在这里做的是:
- 第一行打印
*
s(大小( - 如果不是首行打印
size - loopCounter
空格,则打印size - loopCounter
*
s
如您所见,此算法无法获得所需的形状。还有为什么你向后循环并检查没有负值?你不需要它。你真正想要的是:
- 用于生成列的外部循环(打印新行(
- 生成每行数据的内部循环
这里唯一重要的是如何生成每一行的数据。 如您所见,每行中的空格计数等于列的索引(从 0 开始(。
以下是您可以尝试的(我将内部循环分为两个循环(:
#include<iostream>
using namespace std;
int main(void)
{
int size;
cout << "Please enter the size: ";
cin >> size;
cin.ignore(999, 'n');
for(int column = 0; column < size; ++column)
{
for(int spaces = 0; spaces < column; ++spaces)
{
cout << " ";
}
for(int starts = 0; starts < size - column; ++starts)
{
cout << "*";
}
cout << endl;
}
cout << "Please press enter to finish...";
cin.ignore(999, 'n');
return 0;
}
试着重新思考你的问题。您有很多复杂的代码来实现简单的事情。输出应如下所示:
*****
****
***
**
*
所以需要注意一些事情:
- 行的长度都一样!
- 唯一的区别是空格的数量。如果我们有行,0 我们有 0 个空格,第 4 行有 4 个空格。
因此,有了这个,您的代码应该很简单:
// PSEUDO CODE
for row = 0 to max_rows
for i = 0 to max_rows
if (i < row)
print a space
else
print a *
这应该可以做到。
相关文章:
- 绘制旋转的三角形
- 如何用for循环在c++中生成单词三角形
- 如何使用递归打印修改后的星号三角形图案
- C++ 创建带有 for 循环的三角形
- 绘制顺时针三角形,重新排序点
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- Eigen c++ 三角形来自
- 为我的 c++ 类介绍制作一个三角形分类器.我有几个问题
- 使用对象文件读取三角形数据网格
- 从捕获的帧中裁剪三角形 - OpenCV 和 C++
- 如何从 3D 曲面网格中删除自相交三角形?
- 以C++输出一个数字三角形
- 打印对立三角形在C++中起作用
- 确定C++中的等腰直角三角形
- 是否可以使用 DirectX 3D 11 绘制由三角形组成的圆?
- 形成一个斐波那契三角形,使得每个数字是上面左对角线或右对角线上两个数字的总和
- OpenGL绘制三角形而不是正方形
- 将数字表示为两个三角形数字的总和
- OpenGL程序不显示三角形
- 在 OpenGL 中使用三角形绘制字母?