输入n,分别用*输出边长为n的实心菱形。
// 例如:n = 3时,输出:
// *
// ***
// *****
// ***
// *
//
//上三角
//行数 空格数 星号数 换行
//1 2 1 1
//2 1 3 1
//3 0 5 1
//空格与行数的关系是: 空格 = n(边长) - 行数
//星号与行数的关系是: 星号 = 行数*2 - 1
//换行始终是一个
int n = 0;
printf("请输入一个边长,我们将为你打印n边菱形:\n");
scanf("%d",&n);
for (int i = 1; i <= n; i++) {
//打印空格
for (int j = 0; j < n - i; j++) {
printf(" ");
}
//打印星号
for (int k = 0; k < 2 * i - 1; k++) {
printf("*");
}
//打印换行
printf("\n");
}
//下三角
//行数 空格数 星号数 换行
//1 1 3 1
//2 2 1 1
//空格与行数的关系是: 空格 = 行数
//星号与行数的关系是: 星号 = (n - 行数)*2 - 1
//换行始终是一个
for (int i = 1; i < n; i++) {
//打印空格
for (int j = 0; j < i; j++) {
printf(" ");
}
//打印星号
for (int k = 0; k < (n - i) * 2 - 1; k++) {
printf("*");
}
//打印换行
printf("\n");
}
边长为 n 的空心菱形
int n = 0;
printf("请输入一个边长,我们将为你打印n边菱形:");
scanf("%d",&n);
//上三角
//行数 空格数 星号数 空格数 星号数 换行
//1 2 1 0 0 1
//2 1 1 1 1 1
//3 0 1 3 1 1
//前面空格与行数的关系是: 空格 = n(边长) - 行数
//星号与行数的关系是: 星号 = 1
//中间空格与行数的关系是: 空格 = (行数-1) * 2 -1
//后面星号 行数为1的时候,0个,行数不为1的时候1个
//换行始终是一个
for (int i = 1; i <= n; i++) {
//打印前面空格
for (int j = 0; j < n - i; j++) {
printf(" ");
}
//打印前面星号
printf("*");
//打印中间空格
for (int k = 0; k < (i - 1)*2 -1; k++) {
printf(" ");
}
//打印后面星号
if (i != 1) {
printf("*");
}
//打印换行
printf("\n");
}
//下三角
//行数 空格数 星号数 空格数 换行
//1 1 1 3 1
//2 2 1 1 1
//3 3 1 0 1
//空格与行数的关系是: 空格 = 行数
//星号与行数的关系是: 星号 = 1
//空格与行数的关系是: 空格 = (n - 行数 - 1)*2 - 1
//星号与行数的关系是: 如果行数等于n-1,那*是0,否则是1
//换行始终是一个
for (int i = 1; i < n; i++) {
//打印前面空格
for (int j = 0; j < i; j++) {
printf(" ");
}
//打印星号
printf("*");
//打印中间空格
for (int k = 0; k < (n-1-i)*2 -1; k++) {
printf(" ");
}
//打印后面星号
if (i != n-1) {
printf("*");
}
//打印换行
printf("\n");
}