我想知道如何使用循环在C++中制作星号直角三角形
I'd Like to know how to make an asterisk right triangle(S) in C++ using a loop
我想要这样的东西:
**** ****
*** ***
** **
* *
我试过这个:
void roadBound() {
for( int i = 1; i <= 10; i++ ){
for( int j = 0; j < i; j++ ){
cout << "*" ;
}
cout << endl;
}
}
但它甚至还没有接近。请帮助
到目前为止,您的代码生成以下内容:
*
**
***
****
*****
******
*******
********
*********
**********
这看起来像一个很好的直角三角形,所以我认为你走在正确的轨道上。为了制作上面的图像,你需要留出一些空间,并确保每一行的长度都相同。如果可以的话,我认为只需要一个循环,你的要求就会容易得多。试试这个:
#include <iostream>
#include <string>
using std::cout;
using std::endl;
using std::string;
int main() {
int height = 4;
int line = height * 4;
for( int i = height; i > 0; --i ){
string stars (i, '*');
int space = line - (i * 2);
string spaces (space, ' ');
cout << stars << spaces << stars << endl;
}
}
此代码生成:
**** ****
*** ***
** **
* *
它似乎比上面的例子多了几个空间,但你可以通过在循环之前添加一个变量来获得你想要的最大空间长度,然后在循环中每次递减两个来解决这个问题。
这在另一个循环中使用3个循环
const int ROW = 4;
const int GAP = 7;
for (int i=ROW, g=GAP; i>=0; i--, g+=2)
{
for (int j=0; j<i; j++) cout << '*';
for (int j=0; j<g; j++) cout << ' ';
for (int j=0; j<i; j++) cout << '*';
cout << 'n';
}
输出
**** ****
*** ***
** **
* *
实时代码
你可以试试这个
int lf=4,md=4, N=4;
for( int i = 1; i<=N; i++ )
{
for( int j =1; j<=lf; j++ )
cout<<"*";
for( int j =1; j<=md; j++ )
cout<<" ";
for( int j =1; j<=lf; j++ )
cout<<"*";
cout<<"n";
lf--;
md+=2;
}
void roadBound(int n) {
const int gap = 6;
string str = string(n, '*') + string(gap, ' ') + string(n, '*');
int f=n,b=n+gap-1;
while(n--){
str[f--]=str[b++]=' ';
cout << str << endl;
}
}
相关文章:
- 绘制旋转的三角形
- 如何用for循环在c++中生成单词三角形
- 如何使用递归打印修改后的星号三角形图案
- C++ 创建带有 for 循环的三角形
- 绘制顺时针三角形,重新排序点
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- Eigen c++ 三角形来自
- 为我的 c++ 类介绍制作一个三角形分类器.我有几个问题
- 使用对象文件读取三角形数据网格
- 从捕获的帧中裁剪三角形 - OpenCV 和 C++
- 如何从 3D 曲面网格中删除自相交三角形?
- 以C++输出一个数字三角形
- 确定C++中的等腰直角三角形
- 打印空心直角三角形
- 生成直角三角形 c++
- 我想知道如何使用循环在C++中制作星号直角三角形
- 全等、相似性和直角三角形
- 确定给定数字 N 是否可以成为具有所有 3 个积分边的直角三角形的斜边的算法
- C++:查找直角三角形算法没有得到预期的结果
- 直角视图中未显示三角形拓扑