解题思路:把整个图形看作一个平行四边形,由一个正三角形和一个倒三角形组成,一行一行打印,结束换行

注意事项: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分

17 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区