Luoyoooo

与其感慨路难行,不如马上出发

[图形模拟]7-1 剥洋葱 (15分)

布告,布告! 应老师要求,我们要做一道打印图形的题目,这是程序员最基本的能力。 那废话不多说,我们来说要求的图形 AAAAA ABBBA ABCBA ABBBA AAAAA 就是外到内,从A到Z。每一层都是一种字母,最里面的一层为一个,即最中心的一个。

输入格式:

一行,一个整数,即图形的层数

输出格式:

如上述图形

输入样例:

3

输出样例:

AAAAA
ABBBA
ABCBA
ABBBA
AAAAA

思路:循环控制,从外层一圈一圈的往里确定

#include <iostream>
using namespace std;
#define maxN 51
int main()
{
    char matrix[maxN][maxN];
    int i, j, N, left, right, up, down;

    scanf("%d", &N);
    for (i = 0; i < N; i++)
    {
        left = i;
        right = 2 * N - 2 - i;
        up = i;
        down = 2 * N - 2 - i;
        for (j = left; j <= right; j++)
        {
            matrix[j][up] = 'A' + i;
            matrix[j][down] = 'A' + i;
        }
        for (j = up + 1; j <= down - 1; j++)
        {
            matrix[left][j] = 'A' + i;
            matrix[right][j] = 'A' + i;
        }
        left++;
        right--;
        up++;
        down--;
    }
    for (i = 0; i < 2 * N - 1; i++)
    {
        for (j = 0; j < 2 * N - 1; j++)
            printf("%c", matrix[i][j]);
        printf("\n");
    }
    return 0;
}

 

posted @ 2020-02-04 16:37  Luoyoooo  阅读(308)  评论(0编辑  收藏  举报