简单模拟
#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; }