用C语言画出空心三角形比较简单,首先要明白程序是一行一行进行编译的,想象一下空心三角形的画法,自然能明白首先应当让程序输出一定数量的空格,再是*,再是空格,再是*,最后换行符。利用一定的数学逻辑便可知:

n行,每行2n-1个字符(仅包含*中间空格*)
第n行有2*和2n-3个中间空格且第一行不执行中间空格语句
左边n-x个边空格
边空格*中间空格*换行符(除第一层)

换行符是每输出完一行才输出,所以,以层数为外层循环,这样我们只需要计算出需要执行的边空格次数、中间空格循环次数即可。

执行第一行的循环时,输出n-第几行的行数个边空格,再输出一个*,之后输出2×第几行的行数-3个中间空格,再输出*,这一行便结束,输出换行符。

经过分析可以得出:层数为外层循环,边空格和中间空格是两个并列的内层循环,而*只有一次,每行只输出两个(除了第一行只有一个和最后一行全是之外)。所以除去第一行和最后一行,可得出一个输出形式:

循环输出n-x个边空格,输出一个*,循环输出2n-3个中间空格,输出*,输出换行符

加上第一行和最后一行,可以用if语句来进行特定的输出。除了第一行,每行都至少有两个*,所以可以写一个if语句:

if(x1!=1)
printf("*");

然后便是最后一行,可以将最后一行的if设在最前面,让他检测,若不是最后一行,便按正常程序输出,若是最后一行,则直接输出2n-2个*

由此便有以下程序:

#include<stdio.h>
int main()
{
int n,time=0,times=0;
printf("请输入图形的行数:");
scanf("%d",&n);
for(int x1=1;x1<=n;x1++)         //层数
{
if(x1==n)
for(int t=0;t<=2*n-2;t++)
printf("*");
else
{time=n-x1;                        //边空格循环次数
times=2*x1-3;                      //中间空格for(int left=1;left<=time;left++)//左边空格printf(" ");
printf("*");for(int among=1;among<=times;among++)//中间空格printf(" ");
if(x1!=1)
printf("*");
printf("\n");
}
}
return 0;
} 

用C语言画空心三角形相关推荐

  1. html ul变成三角形,用CSS来画空心三角形的方法

    画这里三角形的方法: 用CSS来实现:整个弹框的ID是#favoriteOptionMenus,对于#favoriteOptionMenus这个元素设置:before和:after的样式,让:befo ...

  2. css空心三角形_用CSS来画空心三角形的方法

    画这里三角形的方法: 用CSS来实现:整个弹框的ID是#favoriteOptionMenus,对于#favoriteOptionMenus这个元素设置:before和:after的样式,让:befo ...

  3. 用C语言打印空心三角形

    #include<stdio.h> #include<stdlib.h>int main() {for(;;){int n;printf("输入边长:"); ...

  4. C语言打印空心三角形代码

    int main() {int i,j,k;printf("请输入行号:");scanf("%d",&k);printf("--------- ...

  5. c语言空心三角形形编程代码,空心三角形的简单实现(必看篇)

    好久没写C代码了,敲着试试,以下代码没经过调试,纯手工写的,如有bug自己调试,要学编程还是得多敲代码,这里提供思路:可以把打印的部分划分成三部分,左边和右边的空格是一样多的,主要是中间的打印,它是以 ...

  6. c语言画谢宾斯基三角形

    谢宾斯基三角形是一个有意思的图形,(英语:Sierpinski triangle)是一种分形,由波兰数学家谢尔宾斯基在1915年提出,它是一种典型的自相似集. 先画一个三角形,然后呢,取三角形的中点, ...

  7. C语言不调用库函数画一个三角形

    这个是知乎上面的一个题目,非常有意思,晚上打球回来就下决心要写代码实现下,再加上自己剖析,让大家明白一个三角形在坐标系中如何用C语言画出来的. https://www.zhihu.com/questi ...

  8. 【C语言练习——打印空心三角形】

    活动地址:毕业季·进击的技术er 夏日炎炎,热浪中我们迎来毕业季,这是告别,也是迈向新起点的开始.这是一个毕业的月份,每年看到很多毕业生都离校上班,在校生准备考试和暑假实习,都非常感慨,不管怎样,作为 ...

  9. [css] CSS画一个三角形,CSS绘制空心三角形

    1.不同理解的边框 <div class="border"></div> .border {width: 50px;height: 50px;border: ...

  10. HDU2091 空心三角形 水题

    空心三角形 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

最新文章

  1. vue总结 08状态管理vuex
  2. IB网络用户数量超过私有网络近4倍
  3. mysql orm .net,2020年 .NET ORM 完整比较、助力选择
  4. mysql主从复制原理 简书_mysql主从复制,从原理讲到安装配置,全干货
  5. OpenCV基于ARM的Linux系统的交叉编译
  6. primer premier 5 64位_王者荣耀:必出破军的3位英雄,玩他们不出破军?说明你是个菜鸟!...
  7. JSP、ASP、PHP Web应用程序怎么这么多P!
  8. 查找单链表的中间节点,要求只能遍历一次链表(C语言)
  9. [Unity2018.3新功能]Prefab嵌套和变体
  10. 多线程的那点儿事(之C++锁)
  11. PHP函数call_user_func和call_user_func_array详解
  12. springboot+junit测试
  13. 依云工资查询系统升级至6.4
  14. 计算机顶级水平,2009年的顶级电脑配置, 相当于中国现在电脑的什么水平?
  15. 现代大学英语精读第二版(第一册)学习笔记(原文及全文翻译)——16A - Who Shall Dwell?(生的机会留给谁?)
  16. 计算机页面底端插入页码,word中怎么插入页码_word增加页码教程
  17. 认知升级之第一性原理
  18. python将两个csv文件按列合并
  19. 移动设备无线投屏到电视机
  20. PointNet++理解(PointNet++实现第2步)

热门文章

  1. Java能用来做什么的?
  2. 电话销售的6个关键成功因素
  3. 文件夹批量重命名不会操作?快来看看吧
  4. 非线性发展方程定解问题
  5. python在直方图上画折线图_在python中,在柱状图上绘制一个折线图
  6. 小 Mil 来了!Milvus 智能问答机器人上线
  7. preg_match用法
  8. 关于通过请求获取的验证码不正确的解决的破解方法
  9. C#之放入透明背景字体(label标签的透明设置)
  10. 各个国家的货币符号和英文缩写全解析