@TOC
菱形
#define _CRT_SECURE_NO_WARNINGS//vs中解决scanf安全问题 #include<stdio.h> int main() { int i = 0; int j = 0; int n = 0; scanf("%d", &n); for (i = 0; i < n; i++)//n为7的上三角形 { for (j = 0; j < n - 1 - i; j++) { printf(" "); } for (j = 0; j <= i; j++) { printf("%c ", '*'); } printf("\n"); } for (i = 0; i < n - 1; i++)//n为6的下三角形 { for (j = 0; j <= i; j++) { printf(" "); } for (j = n - 1 - 1 - i; j >= 0; j--) { printf("%c ", '*'); } printf("\n"); } return 0; }
`
在这里插入图片描述
假设n为7的菱形
我们可以把它分为两部分 上三角形 下三角形
1.上三角形
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
我们发现想要将三角形转换成菱形的上部分 就需要思考左边界与 * 空格个数
以n为7的三角形为例
顶点与左边界的空格个数是6 ------>n-1
顶点下一个*的空格个数是5------->n-1-1
最下面的与左边界空格个数是 0
在这里插入图片描述
2.下三角形
在这里插入图片描述
在这里插入图片描述
n为7 表示6的下三角形 --->n-1
第一次 是6个数 下标从0取到5 5----->n-1-1
第二次 是 5个数 下标从0取到4 4------->n--1-1
即从n-1-1-i开始到0
在这里插入图片描述
这里的顶点与左边界的空格个数是 0
依次增加 1 到最后顶点到达最大空格个数
在这里插入图片描述
由于我们菱形的下三角形的空格个数需从1开始才能保证 两个三角形连接 所以 j