1.解法一(基础版)

int main(){
    char ch;
    scanf("%c",&ch);
    printf("  %c  \n",ch);
    printf(" %c%c%c \n",ch,ch,ch);
    printf("%c%c%c%c%c\n",ch,ch,ch,ch,ch);
    printf(" %c%c%c \n",ch,ch,ch);
    printf("  %c  \n",ch);
    return 0;
}

2.解法二(通用版)

#include<stdio.h>
int main()
{
    int i = 0;
    int j = 0;
    char c = 0;
    scanf("%c", &c);
    int n = 3;//第一行到对角线行的行数
    for(i = 1; i <= n; i++)
    {
        //打印每行对应空格
        for(j = 0; j < n - i; j++)
        {
            printf(" ");
        }
        //打印每行对应字符
        for(j = 0; j < 2 * i - 1; j++)
        {
            printf("%c",c);
        }
        printf("\n");
    }
    //打印对角线行以下行
    for(i = 1; i < n; i++)
    {
        //打印每行对应空格
        for(j = 0; j < i; j++)
        {
            printf(" ");
        }
        //打印每行对应字符
        for(j = 0; j < 2 * (n - i) - 1; j++)
        {
            printf("%c",c);
        }
        printf("\n");
    }
    return 0;
}