用C语言画空心三角形
用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语言画空心三角形相关推荐
- html ul变成三角形,用CSS来画空心三角形的方法
画这里三角形的方法: 用CSS来实现:整个弹框的ID是#favoriteOptionMenus,对于#favoriteOptionMenus这个元素设置:before和:after的样式,让:befo ...
- css空心三角形_用CSS来画空心三角形的方法
画这里三角形的方法: 用CSS来实现:整个弹框的ID是#favoriteOptionMenus,对于#favoriteOptionMenus这个元素设置:before和:after的样式,让:befo ...
- 用C语言打印空心三角形
#include<stdio.h> #include<stdlib.h>int main() {for(;;){int n;printf("输入边长:"); ...
- C语言打印空心三角形代码
int main() {int i,j,k;printf("请输入行号:");scanf("%d",&k);printf("--------- ...
- c语言空心三角形形编程代码,空心三角形的简单实现(必看篇)
好久没写C代码了,敲着试试,以下代码没经过调试,纯手工写的,如有bug自己调试,要学编程还是得多敲代码,这里提供思路:可以把打印的部分划分成三部分,左边和右边的空格是一样多的,主要是中间的打印,它是以 ...
- c语言画谢宾斯基三角形
谢宾斯基三角形是一个有意思的图形,(英语:Sierpinski triangle)是一种分形,由波兰数学家谢尔宾斯基在1915年提出,它是一种典型的自相似集. 先画一个三角形,然后呢,取三角形的中点, ...
- C语言不调用库函数画一个三角形
这个是知乎上面的一个题目,非常有意思,晚上打球回来就下决心要写代码实现下,再加上自己剖析,让大家明白一个三角形在坐标系中如何用C语言画出来的. https://www.zhihu.com/questi ...
- 【C语言练习——打印空心三角形】
活动地址:毕业季·进击的技术er 夏日炎炎,热浪中我们迎来毕业季,这是告别,也是迈向新起点的开始.这是一个毕业的月份,每年看到很多毕业生都离校上班,在校生准备考试和暑假实习,都非常感慨,不管怎样,作为 ...
- [css] CSS画一个三角形,CSS绘制空心三角形
1.不同理解的边框 <div class="border"></div> .border {width: 50px;height: 50px;border: ...
- HDU2091 空心三角形 水题
空心三角形 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
最新文章
- vue总结 08状态管理vuex
- IB网络用户数量超过私有网络近4倍
- mysql orm .net,2020年 .NET ORM 完整比较、助力选择
- mysql主从复制原理 简书_mysql主从复制,从原理讲到安装配置,全干货
- OpenCV基于ARM的Linux系统的交叉编译
- primer premier 5 64位_王者荣耀:必出破军的3位英雄,玩他们不出破军?说明你是个菜鸟!...
- JSP、ASP、PHP Web应用程序怎么这么多P!
- 查找单链表的中间节点,要求只能遍历一次链表(C语言)
- [Unity2018.3新功能]Prefab嵌套和变体
- 多线程的那点儿事(之C++锁)
- PHP函数call_user_func和call_user_func_array详解
- springboot+junit测试
- 依云工资查询系统升级至6.4
- 计算机顶级水平,2009年的顶级电脑配置, 相当于中国现在电脑的什么水平?
- 现代大学英语精读第二版(第一册)学习笔记(原文及全文翻译)——16A - Who Shall Dwell?(生的机会留给谁?)
- 计算机页面底端插入页码,word中怎么插入页码_word增加页码教程
- 认知升级之第一性原理
- python将两个csv文件按列合并
- 移动设备无线投屏到电视机
- PointNet++理解(PointNet++实现第2步)