sdjzu2121叠筐

2121:叠筐分数: 2.3

时间限制:1 秒
内存限制:32 兆
特殊判题: 否
提交:3
解决: 1

题目描述

把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错。这个工作现在要让计算机来完成,得看你的了。


输入格式

输入是一个个的三元组,分别是,外筐尺寸n(n为满足0<n<80的奇整数),中心花色字符,外筐花色字符,后二者都为ASCII可见字符;


输出

输出叠在一起的筐图案,中心花色与外筐花色字符从内层起交错相叠,多筐相叠时,最外筐的角总是被打磨掉。叠筐与叠筐之间应有一行间隔。


样例输入

5 ^ !
7 ( )
0

样例输出

 ^^^ 
^!!!^
^!^!^
^!!!^
 ^^^ 

 ))))) 
)((((()
)()))()
)()()()
)()))()
)((((()
 ))))) 

提示[+]

*** 提示已隐藏,点击上方 [+] 可显示 ***

2121:叠筐 分数: 2.3
时间限制:1 秒内存限制:32 兆特殊判题: 否 提交:3解决: 1
题目描述
把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错。这个工作现在要让计算机来完成,得看你的了。

输入格式
输入是一个个的三元组,分别是,外筐尺寸n(n为满足0<n<80的奇整数),中心花色字符,外筐花色字符,后二者都为ASCII可见字符;

输出
输出叠在一起的筐图案,中心花色与外筐花色字符从内层起交错相叠,多筐相叠时,最外筐的角总是被打磨掉。叠筐与叠筐之间应有一行间隔。

样例输入
5 ^ !
7 ( )
0
样例输出
 ^^^ 
^!!!^
^!^!^
^!!!^
 ^^^ 

 ))))) 
)((((()
)()))()
)()()()
)()))()
)((((()
 ))))) 
提示[+]
*** 提示已隐藏,点击上方 [+] 可显示 ***
#include<stdio.h>
int main()
{
    char b,c;
    int n,o=0;
    while(scanf("%d%*c",&n)!=EOF)
    {
        o++;
        if(n==0)break;
        scanf("%c %c",&b,&c);
        int i,j;
        int z,f=-1,m,i1;
        char c1,a[100][100];
        z=n/2;
        a[z][z]=b;
        m=z+1;
        i1=z-1;
        if(n==1){if(o!=1)printf("\n");printf("%c\n",b);}
        else if(n==3)
        {a[0][0]=a[2][0]=a[0][2]=a[2][2]=' ';
        a[0][1]=a[1][0]=a[1][2]=a[2][1]=c;
        if(o!=1)printf("\n");
        for(i=0;i<n;i++)
        {for(j=0;j<n;j++)
        printf("%c",a[i][j]);
        printf("\n");
        }
        }
        else {
            while(m<n-1)
        {

            if(f==-1)c1=c;
            else c1=b;
            for(j=i1;j<=m;j++)
            a[i1][j]=c1;
            for(i=i1+1;i<=m;i++)
            a[i][j-1]=c1;
            for(j=m-1;j>=i1;j--)
            a[i-1][j]=c1;
            for(i=m-1;i>i1;i--)
            a[i][j+1]=c1;
            m++;
            i1--;
            f=-f;
        }
        if(c1==b)c1=c;
        else if(c1==c)c1=b;
        for(j=1;j<n-1;j++)
        {
            a[0][j]=c1;
            a[n-1][j]=c1;
        }
        for(i=1;i<n-1;i++)
        {
            a[i][0]=c1;
            a[i][n-1]=c1;
        }
        a[0][0]=a[0][n-1]=a[n-1][0]=a[n-1][n-1]=' ';
        if(o!=1)printf("\n");
        for(i=0;i<n;i++)
        {for(j=0;j<n;j++)
        printf("%c",a[i][j]);printf("\n");
       }

       }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值