C语言编程练习35:叠筐

题目描述

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


输入

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


输出

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


样例输入 Copy

5 ^ !
7 ( )
0

样例输出 Copy

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

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


机构平台标程
#include <stdio.h>
int n;
int run()
{
    char a,b;
    int i,j,k,l,t,m;
    scanf(" %c %c",&a,&b);
    m=n/2+1;
    for(i=1;i<=n;i++)
    {
        k=m-i;
        if(k<0)
            k=-k;
        for(j=1;j<=n;j++)
        {
            l=m-j;
            if(l<0)
                l=-l;
            if((k==m-1)&&(l==m-1)&&(n>1))
                printf(" ");
            else
            {
                t=l;
                if(t<k)
                    t=k;
                if(t%2==0)
                    printf("%c",a);
                else
                    printf("%c",b);
            }
        }
        printf("
");
    }
    printf("
");
}
int main()
{
    scanf("%d",&n);
    while(n!=0)
    {
        run();
        n=0;
        scanf("%d",&n);
    }
    return 0;
}
原文地址:https://www.cnblogs.com/FantasticDoubleFish/p/14335685.html