原题链接:蓝桥杯算法提高VIP-输出正反三角形
解题思路:把整个图形看作一个平行四边形,由一个正三角形和一个倒三角形组成,一行一行打印,结束换行
注意事项:n为行高,m为两个三角形之间的距离,图形最前面的空格等于两个三角形之间的距离m
参考代码:
#includeint main() { int n, m, k = 1, j, a; scanf("%d%d", &n, &m); a=n*2-1; //倒三角第一行*号个数等于总个数(h*2)减倒三角第一行*号个数 int b = n - 1; for (int i = 0; i < n; i++) { //图形行高 for (j = 0; j < m+b; j++) //图形前面的空格数 printf(" "); for (j = 0; j < k; j++) //正三角形 printf("*"); for (j = 0; j < m; j++) printf(" "); for (j = 0; j < a; j++) //倒三角 printf("*"); printf("\n"); k += 2; a -= 2; //正三角每行递增2,倒三角每行递减2 b--; //三角形前面空格(形成阶梯格式) } return 0; }
0.0分
15 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复