格子中输出(改进版,可改变输出行数,列数)

来源:互联网 发布:自制数据库 编辑:程序博客网 时间:2024/06/05 20:57


#include<cstdio>

#include<cstdlib>
#include<cstring>
using namespace std;
void shuchu(int width,int height,char *p)
{
    char buf[100];
    printf("+");
    for(int i=1;i<=width-2;i++)
        printf("_");
        printf("+\n");
        int ni=(height-2)%2==0?(height-2)/2-1:(height-2)/2;
        for(int j=1;j<ni;j++)
    {
    printf("|");
    for(int i=1;i<=width-2;i++)
        printf(" ");
    printf("|\n");
    }
    strcpy(buf,p);
    if(strlen(buf)>=width-2)
        buf[width-2]='\0';
    printf("|");
    printf("%*s%s%*s",(width-2-strlen(buf))/2,"",buf,(width-2-strlen(buf))/2,"");
    printf("|\n");
    for(int j=1;j<width-2-ni;j++)
    {
    printf("|");
    for(int i=1;i<=width-2;i++)
        printf(" ");
    printf("|\n");
    }
    printf("+");
    for(int i=1;i<=width-2;i++)
        printf("_");
        printf("+\n");


}
int main()
{
    int a,b;
    char *p="abcde12345";
    scanf("%d%d",&a,&b);
    shuchu(20,20,p);
    return 0;


}
0 0