练习3

猿辅导公司的 N位(N>=4)研发同学组织了一次秋游活动,某同学带了个无人机在高空拍照,活动结束时,先拍了一张所有同学排成公司猴头Logo的照片, 接着有人提议再排成“猿”的首字母Y字形来拍一张合照。

用字符串中的每一个字符(不是换行符或结束符'\0')代表一位老师,输出排好后的队形。要求 Y字除去中心点外,上下半部分等高,按照从左到右,从上到下进行排序。队形中没人的部分用空格占位。

输入数据保证可以排出一个完整的Y字,即长度为 3k+1 (k>=1)

例如: 7个 x ,排成队形为(为了方便说明,这里用‘-’代替空格):

x---x

-x-x

--x

--x

--x

#include<stdio.h>
#include<stdlib.h>

void fun(char arr[],int a) {
    int b_1[a];
    int q;
    q=(a-1)/3;
    int l=0;
    int m=2*q+1;
    int k=0;
    for(int i=0,j=(2*q+1);i-1<(2*q+1)/2,j-1>(2*q+1)/2;i++,j--){
        for(int h=0;h<l;h++){
            printf(" ");
        }
        printf("%c",arr[k]);
        for(int h=0;h<j-i-2;h++){
            printf(" ");
        }
        
        k++;
        
        printf("%c",arr[k]);
        
        for(int h=0;h<m;h++){
            printf(" ");
        }
        l++;
        m--;
        k++;
        printf("\n");
    }    
    for(int i=0;i<(2*q+1)/2+1;i++){
        for(int h=0;h<(2*q+1)/2;h++){
            printf(" ");
        }
        printf("%c",arr[k]);
        printf("\n");
        k++;    
    }
}

char array[1001];

int main() {
    int a;
    int b;
    //while(scanf("%d %d",&a, &b) != EOF)
    scanf("%d\n",&a);
    for(int i=0;i<a+1;i++){
        scanf("%c",&array[i]);        
    } 
    fun(array,a);
    return 0;
}

猜你喜欢

转载自blog.csdn.net/lichen_6398/article/details/85607755