原题来自菜鸟教程

C++ 实例 - 创建各类三角形图案

文章目录

  • 1.*组成的直角三角形
  • 2.数字组成的三角形
  • 3.字母组成的三角形
  • 4.打印*组成的倒三角
  • 5.打印数字组成的倒三角形
  • 6.*构成的金字塔型正三角形(近似)
  • 7.数字构成的金字塔
  • 8.*构建倒金字塔

1.*组成的直角三角形

预期效果

#include<iostream>
using namespace std;int main()
{int rows;cout << "please input how many rows do you want to print:";cin >> rows;for (int i=1; i<=rows; i++){for (int j=1; j<=i; j++){cout << "*";}cout << endl;
//      cout << "\n";别忘了转义符的换行方法啊~ }
}

2.数字组成的三角形

同理~
稍微改一下输出即可 原理相同~

#include<iostream>
using namespace std;int main()
{int rows;cout << "please input how many rows do you want to print:";cin >> rows;for (int i=1; i<=rows; i++){for (int j=1; j<=i; j++){cout << j << " ";//稍微改一下输出即可  原理相同~}cout << endl;
//      cout << "\n";别忘了转义符的换行方法啊~ }
}

3.字母组成的三角形

#include<iostream>
using namespace std;int main()
{char input,alphabet = 'A';cout << "请输入最后一个大写字母:";cin >> input;for (int i=1; i<=(input - 'A' + 1); i++){for (int j=1; j<=i; j++){cout << alphabet << " ";}alphabet ++;cout << endl;
//      cout << "\n";别忘了转义符的换行方法啊~ }
}

4.打印*组成的倒三角

#include<iostream>
using namespace std;int main()
{int rows;cout << "please input how many rows do you want to print:";cin >> rows;for (int i=rows; i>=1; i--){for (int j=i; j>=1; j--){cout << "*";}cout << endl;
//      cout << "\n";别忘了转义符的换行方法啊~ }
}

5.打印数字组成的倒三角形


6.*构成的金字塔型正三角形(近似)

到了这里终于是上了一些难度~
难度在于——把空间空出来~

这个还算简单 重点就是把每行第一个星号之前的位置空出来~

本人解法——代码如下:

#include<iostream>
using namespace std;int main()
{int space, rows;cout << "please input how many rows do you want to print:";cin >> rows;for (int i=1; i <= rows; i++){for (space = 1; space <= rows - i; space++){//          第一行打 rows-1 个空格
//          最后一行无空格 cout << " ";}for(int k = 0; k <= 2*i - 1 ;k++){cout << "* ";k++;} cout << endl;
//      cout << "\n";别忘了转义符的换行方法啊~ }return 0;
}

这里菜鸟教程给出了一个很有意思的方法:
在打印金字塔的组成部分——“*”时
用了一个巧妙的while循环 打印出每层的 星号

搭配上外层for循环末尾k值的清零


完整代码如下:

#include<iostream>
using namespace std;int main()
{int space, rows;cout << "please input how many rows do you want to print:";cin >> rows;for (int i=1,k=0; i <= rows; i++,k=0){//      每次循环结束 k清0 ~~ for (space = 1; space <= rows - i; space++){cout << " ";}while(k != 2*i-1){cout << "* ";++k;}cout << endl;}return 0;
}

7.数字构成的金字塔


完整代码如下:

#include<iostream>
using namespace std;int main()
{int rows, count = 0, count1 = 0, k = 0;cout << "please input how many rows do you want to print:";cin >> rows;for (int i=1; i <= rows; ++i){for (int space = 1; space <= rows - i; ++space){cout << "  ";++count;}while(k != 2*i-1){if(count <= rows-1){cout << i+k <<" ";++count;}else{++count1;cout << i+k-2*count1 <<" ";}++k;}count1 = count = k = 0;//将count值 k值清零cout << endl;}return 0;
}

难度升级 因为要输出的不止是单调的星号*
而是需要输出这样对称的数字
所以在while循环中 需要分情况

8.*构建倒金字塔

效果如下:

代码如下:

#include<iostream>
using namespace std;int main()
{int rows;cout << "please input how many rows do you want to print:";cin >> rows;for (int i=rows; i >=1; --i){for (int space = 0; space < rows - i; ++space)cout << "  ";for (int j=i; j<= 2*i-1; ++j)cout << "* ";for (int j = 0; j<i-1; ++j)cout << "* ";cout << endl;}return 0;
}

C++编程练习 利用嵌套循环实现各类三角形图案相关推荐

  1. C++ 创建各类三角形图案

    文章目录 前言 一.直角三角形 二.数字直角三角形 三.字母直角三角形 四.倒直角三角形 总结 前言 介绍完了c++,我们来实例看一下怎样用c++. 一.直角三角形 我们先来做一个简单的三角形. #i ...

  2. c语言坐标海伦公式,C语言:用海伦公式求三角形面积 , C语言编程问题,利用海伦公式求三角形面积...

    导航:网站首页 > C语言:用海伦公式求三角形面积 , C语言编程问题,利用海伦公式求三角形面积 C语言:用海伦公式求三角形面积 , C语言编程问题,利用海伦公式求三角形面积 匿名网友: 程序已 ...

  3. 利用Tableau绘制各类图表

    利用Tableau绘制各类图表 Tableau部分 Tableau下载和安装 使用Tableau连接数据源 连接EXCEL数据源 连接CSV数据源 连接PDF数据源 连接MySQL数据源(Deskto ...

  4. 王爽 汇编语言第三版 监测点9.2 监测点9.3 补全编程,利用jcxz指令,利用loop指令,实现在内存2000H段中查找第一个值为0的字节,

    补全编程,利用jcxz指令,实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中. 而且,截图中给出了是字节.是8位,占通用寄存器的一半空间!区分出CL,CH! 为了区分 ...

  5. java语言编程三角形图形_编程题:编写程序输入三角形的3条边长,计算并输出... 求助一道JAVA编程题:编写一个类似记事本的图形用......

    导航:网站首页 > 编程题:编写程序输入三角形的3条边长,计算并输出... 求助一道JAVA编程题:编写一个类似记事本的图形用... 编程题:编写程序输入三角形的3条边长,计算并输出... 求助 ...

  6. Android界面编程之利用单选框和复选框实现对学历和爱好进行选择

    Android界面编程之利用单选框和复选框实现对学历和爱好进行选择 首先我们要了解一下单选框和复选框: , 单选框(Radio Button):当用户选择某单选按钮时,同一组中的其他单选按钮不能同时选 ...

  7. Java--网络编程(利用UDP实现简单的双人聊天)

    1 UDP的定义 UDP(User Datagram Protocol)是一个无连接的传输层协议,提供了无连接通信,且不对传送数据包进行可靠性保证,适合于一次传输少量数据.UDP报文没有可靠性保证.顺 ...

  8. 从键盘输入三角形的直角边,利用hypot()函数输出三角形的斜边

    从键盘输入三角形的直角边,利用hypot()函数输出三角形的斜边 欢迎来到我的CSDNhttps://blog.csdn.net/weixin_57269947?type=blog #define _ ...

  9. php开发工程师名片,PHP编程:利用PHP自动生成印有用户信息的名片

    <PHP编程:利用PHP自动生成印有用户信息的名片>要点: 本文介绍了PHP编程:利用PHP自动生成印有用户信息的名片,希望对您有用.如果有疑问,可以联系我们. 前言 PHP教程无论是自己 ...

最新文章

  1. LeetCode 123. Best Time to Buy and Sell Stock III--Python解法--动态规划--数学题
  2. mysql数据库性别男用1存储那性别女用什么呢?
  3. Spring MVC 基础
  4. Stm32 IAP程序编写及用户程序编写
  5. html导航下拉菜单js点击显示不出来,使用JS做下拉菜单,子菜单不显示
  6. ABP vNext微服务架构详细教程——架构介绍
  7. C/C++只做经典编程语言
  8. 查看Ubuntu中的ip地址
  9. bcp导入到数据库_Bcp和链接到Azure的服务器
  10. Markdown效率参考手册
  11. java spring 下载文件_springboot下载文件(使用流)
  12. 3801.最佳连续子数组-AcWing题库
  13. Android GIS开发系列-- 入门季(15) 网络图层加载
  14. iOS开发那些事--nib、xib与故事板的关系
  15. 【我的OpenGL学习进阶之旅】学习OpenGL ES 3.0 的实战 Awsome Demo (上)
  16. 2021-2027全球与中国Al2O3氧化铝陶瓷基板白板市场现状及未来发展趋势
  17. PyCharm 的调试功能
  18. 硬核干货,史上最强获取GitHub所有仓库内容数据分析教程
  19. 普及!cmnet、cmiot还傻傻分不清楚?APN设置看看这一篇就够了!!
  20. 浅析GIS行业地图绘制基本要求

热门文章

  1. 基于python的可视化分析_Python数据的可视化分析,python
  2. osgi框架基础原理与实例一
  3. tensorflow中的eval的用法
  4. 玩转OSGI-ApacheFelix(一)框架启动部署
  5. Parsec测试基准程序在zynq板上测试
  6. 不用u盘如何在小米电视上安装电视直播软件
  7. TikTok运营11个常见问题总结
  8. Java互联网架构-企业级实战秒杀系统优化方案与应用思路
  9. 静态代码检查工具 cppcheck 的使用
  10. 拉格朗日Lagrange插值多项式