c语言打印空心等腰三角形

c语言如何用循环打出以下三角形
用代码块功能插入代码,请勿粘贴截图
我想要达到的结果

img

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

供参考:

#include <stdio.h>
int main()
{
    int n, i, j;
    scanf("%d", &n);//读取三角形的行数
    for (i = 1; i <= n; i++)//外循环,控制行数
    {

        for (j = 0; j < n - i; j++)//输出前面的空格
            printf(" ");
        if (i > 1)//第一行除外
        {
            printf("*"); //先打首个*
            for (j = 1; j < 2 * (i - 1); j++)//若非最后一行则中间连续若干空格
                if (i < n)
                    printf(" ");
                else 
                    printf("*");//最后一行则中间也是*
        }
        printf("*\n");//打印最后一个*,然后换行
    }
    return 0;
}