int main() {
int rows;
printf("输入打印行数: \n");
scanf("%d", &rows);
int i, j, space;
for (i = 1; i <= rows; i++) {
for (space = 1; space <= rows - i; space++) {
printf(" ");
}
for (j = 1; j <= 2 * i - 1; j++) {
printf("*");
}
printf("\n");
}
return 0;
}
加一个循环打印空格
for(b=0;b<n-a;++b)
printf(" ");
【以下回答由 GPT 生成】
我可以帮助你修改这段代码,实现打印金字塔形状的*。下面是修改后的代码:
#include<stdio.h>
int main() {
int n, a, b, space;
scanf("%d", &n);
space = n - 1;
for (a = 1; a <= n; a++) {
for (b = 1; b <= space; b++) {
printf(" ");
}
space--;
for (b = 1; b <= 2 * a - 1; b++) {
printf("*");
}
printf("\n");
}
return 0;
}
修改后的代码在原来的代码基础上增加了一个变量space,用于控制每一行前面的空格数。在每一行开始前先打印space个空格,然后再打印星号()。每新的一行,space的值就减少1。这样就可以实现打印金字塔形状的。