C语言:打印如下星号图案: (注意:输出的每行*号最后有一个空格,每个*号之间有一个空格)

请问我的代码哪里错了?
打印如下星号图案: (注意:输出的每行号最后有一个空格,每个号之间有一个空格)

示例:

输入行数:6

img

#include <stdio.h>
int main() {
int n,i,j;
  scanf("%d",&n);
for(i=1;i<=n;i++){
for(j=0;j<=2*i-2;j++)printf(" ");
for(;j<=2*n-i;j++)printf("* ");
printf("\n");
}
}

img

修改如下,供参考:

#include <stdio.h>
int main() {
    int n,i,j;
    scanf("%d",&n);
    for(i=0;i < n;i++){
        for(j=0;j < i;j++)
            printf("  ");
        for(j=0;j < 2*(n-i)-1;j++)
            printf("* ");
        printf("\n");
    }
    return 0;
}

for(;j<=2n-i;j++)printf(" ");

j的初始值比你预想的多个1