这个真的敲了很久
大概想法是
每一行的字母的位置都是上一行向左向右移一格
所以找出中间位置,依次加减即可
我把上下两部分全部放在一个for循环里,所以前面加了个if判断条件,可以把下面三角转换为上面三角,不知道这个条件对不对,下面的if语句也是这样滴
但是只对了一个测试点
能不能看看哪里有问题啊
忘记发题了😅
这个真的敲了很久
大概想法是
每一行的字母的位置都是上一行向左向右移一格
所以找出中间位置,依次加减即可
我把上下两部分全部放在一个for循环里,所以前面加了个if判断条件,可以把下面三角转换为上面三角,不知道这个条件对不对,下面的if语句也是这样滴
但是只对了一个测试点
能不能看看哪里有问题啊
#include <stdio.h>
#include <math.h>
int main() {
int n, c, k, space = 1;
printf("Enter the number of rows: ");
scanf("%d", &n);
space = n - 1;
for (k = 1; k <= n; k++) {
for (c = 1; c <= space; c++)
printf(" ");
space--;
for (c = 1; c <= 2 * k - 1; c++) {
if (c == 1 || c == 2 * k - 1)
printf("*");
else
printf(" ");
}
printf("\n");
}
space = 1;
for (k = 1; k <= n - 1; k++) {
for (c = 1; c <= space; c++)
printf(" ");
space++;
for (c = 1; c <= 2 * (n - k) - 1; c++) {
if (c == 1 || c == 2 * (n - k) - 1)
printf("*");
else
printf(" ");
}
printf("\n");
}
return 0;
}