21xrx.com
2024-09-19 09:54:33 Thursday
登录
文章检索 我的文章 写文章
C++编程制作菱形图案,以*为元素。
2023-07-09 15:48:23 深夜i     --     --
C++ 编程 菱形图案 *元素

C++是一种高级编程语言,以其速度快,性能优良以及灵活性高而闻名。如果想要学习C++编程并了解其用处,可以从简单的程序编写入手。今天我们就来介绍一种用C++编程制作菱形图案的方法,其中的元素是*。

制作菱形图案的方法有很多,但是本文将介绍两种方式:使用嵌套循环和智能指针。

使用嵌套循环制作菱形图案

首先,我们定义一个整数变量n,表示菱形的大小,然后使用两个嵌套循环和一些if语句制作出菱形图案。代码如下:


#include <iostream>

using namespace std;

int main()

{

  int n;

  cout << "请输入菱形的大小:";

  cin >> n;

  for(int i = 0; i < n; i++)

  {

    for(int j = 0; j < n-i-1; j++)

      cout << " ";

    for(int k = 0; k < 2*i+1; k++)

      cout << "*";

    cout << endl;

  }

  for(int i = 1; i < n; i++)

  {

    for(int j = 0; j < i; j++)

      cout << " ";

    for(int k = 0; k < 2*(n-i)-1; k++)

      cout << "*";

    cout << endl;

  }

  return 0;

}

运行结果:


请输入菱形的大小:5

  *

  ***

 *****

*******

*********

*******

 *****

  ***

  *

使用智能指针制作菱形图案

智能指针是一种自动管理动态内存分配的指针,能够防止内存泄漏。利用智能指针,我们可以将C++编程制作菱形图案的程序改写为以下形式:


#include <iostream>

#include <memory>

using namespace std;

int main()

{

  int n;

  shared_ptr<int[]> ptr;

  cout << "请输入菱形的大小:";

  cin >> n;

  ptr = make_shared<int[]>(n*n);

  for(int i = 0; i < n; i++)

  {

    for(int j = 0; j < n-i-1; j++)

      *(ptr.get()+i*n+j) = ' ';

    for(int k = 0; k < 2*i+1; k++)

      *(ptr.get()+i*n+n-i-1+k) = '*';

  }

  for(int i = 1; i < n; i++)

  {

    for(int j = 0; j < i; j++)

      *(ptr.get()+i*n+j) = ' ';

    for(int k = 0; k < 2*(n-i)-1; k++)

      *(ptr.get()+i*n+n-i-1+k) = '*';

  }

  for(int i = 0; i < n*n; i++)

  {

    cout << *(ptr.get()+i);

    if((i+1)%n == 0)

      cout << endl;

  }

  return 0;

}

运行结果:


请输入菱形的大小:5

  *

  ***

 *****

*******

*********

*******

 *****

  ***

  *

在这个程序中,我们定义了一个智能指针ptr,用于自动管理内存空间,然后运用动态内存分配,分配一个一维数组,存储菱形图案的元素。通过指定指针ptr的偏移量来修改数组元素的值,使用指针输出图案。

总结

以上就是两种使用C++编程制作菱形图案的方法,大家可以根据自己的喜好和需求选择其中一种方法进行学习。但无论使用的是哪种方法,都要坚持实践与理论相结合的方式,勤奋学习和不断尝试,才能够成为一个合格的C++编程人员。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复