简单模拟
#include <stdio.h>

int main() {
    int n;
    char ch;
    int line;   //列

    scanf("%d %c",&n,&ch);

    //由于列是行的50%,所以除2,且因为在本代码中,首尾两行是而外打印的,所以再减去2
    line=(n/2-2);
    //因为要求是行的50%且四舍五入,所以如果行是奇数的话,那需要进一
    if(n%2 != 0)
        { ++line; }

    //打印首行字母
    for(int i=0; i<n; ++i)
        { printf("%c",ch); }
    printf("\n");

    //打印中间
    for(int i=0; i<line; ++i){
        printf("%c",ch);
        for(int j=1; j<n-1; ++j){
            printf(" ");
        }
        printf("%c\n",ch);
    }

    //打印尾行
    for(int i=0; i<n; ++i)
        { printf("%c",ch); }
    return 0;
}