为什么带空格的三角形图案输出不对

应该是先空格在*
#include<stdio.h>
int main()
{
int n,j,i,k;
while(scanf("%d",&n)!=EOF)
{
for(i=0;i<n;i++)
{
for(j =n-1; j >=0; j--)
printf(" ");
for(k=0;k<=i;k++)
printf("* ");
printf("\n");
}
}
return 0;
}


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