关于for循环语句的使用

我想打印这个

img


但结果是这个

img


代码是

img


同时可不可以解释一下第二个花括号里面的两个for语句,我非常看不懂


printf("*")改为printf("* ");
#include <stdio.h>
int main()
{
   int a,b;
   for(a=1;a<=5;a++)
   {
       for(b=1;b<=5-a;b++)
           printf(" ");
       for(b=1;b<=a;b++)
           printf("* ");
       printf("\n");
   }
    return 0;
}

供参考:

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