c语言程序求解 不知道这样怎么写?

问题遇到的现象和发生背景

我想做到这样
输入n的值,n代表行数,输出如图所示的图形(此时是n=6时的输出结果)

img


但是却没有这样

用代码块功能插入代码,请勿粘贴截图

#include<stdio.h>
int main()
{
int n ;
int a;
int b;
printf("请输入n值\n");
scanf("%d",&n);
for(a=0;a<=n;a++)
{
for( b=0;b<=a;b++)
{
printf(" X ");
}
putchar('\n');
}
return 0;
}

运行结果及报错内容

img

我的解答思路和尝试过的方法

不知道怎么解决了

找到函数关系就好

#include<stdio.h>
int main()
{
    int n ;
    int a;
    int b;
    printf("请输入n值\n");
    scanf("%d",&n);
    for(a=1;a<=n;a++)
    {
        for(b=1;b <= 2 * n;b++)
        {
            if(a + b >= n + 1 && b - a <= n - 1){
                putchar('*');
            }else{
                if(a+b < n + 1){
                    putchar(' ');
                }
            }
        }
        putchar('\n');
    }
    return 0;
}

供参考:

#include <stdio.h>
int main()
{
    int n=6, i, j;
    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;
}