编程打印空心字符菱形

编程打印空心字符菱形 (10 分)

本题目要求读入菱形起始字母和菱形的高度,然后输出空心字符菱形。所谓“空心菱形”是指:每行由两端为字母、中间为空格的字符串构成,每行的字符串中心对齐;上半部分相邻两行字符串长度差2,且字母从给定的起始字母逐一递增;下半部分与上半部分对称。

输入格式:

输入在一行中给出起始字母(范围为英文大写字母A-G)和菱形的高度(为不超过10的奇数)。

输出格式:

输出空心字符菱形。

输入样例:


B 5

输出样例:

  B
 C C
D   D
 C C
  B

 上下分开,注意右半部分。

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
    char c;
    int n;
    cin>>c>>n;
    for(int i = 0;i<n/2+1;i++){
        for(int j = n/2-i;j >= 0;j--){
            if(j!=0)
               cout<<" ";
            if(i == 0&&j == 0){
                printf("%c\n",c);
                c++;
            }
            else if(j == 0){
                printf("%c",c);
                for(int k = 0;k < 2*i-1;k++){
                    cout<<" ";
                }
                printf("%c\n",c);
                c++;
            }
        }
    }
    c = c-2;
    int k = 2;
    for(int i = n/2;i >= 1;i--){
        for(int j = 1;j < k;j++){
            cout<<" ";
        }
        if(i == 1){
            printf("%c",c--);
            break;
        }
        printf("%c",c);
        for(int l = 2*i-3;l>=1;l--){
            cout<<" ";
        }
        printf("%c\n",c--);
        k++;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_42018521/article/details/88608275