2017机试题-输入字符打印特殊结构

exp

输入D

输出 A B C D C B A

            A  B C B A

                A B A

                   A

思路很简单的一个字符输入问题

把字母套到一个数组里,通过计算输入字符在字母表中的位置按照顺序输入数据即可

大小写字母分开讨论(原题有小写字母,这里只写了大写字母,但是逻辑是一样的,不赘述)

代码实现:

 1 #include<iostream>
 2 using namespace std;
 3 char abc[26]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','o','P','Q','R','S','T','U','V','W','X','Y','Z'};
 4 int main()
 5 {
 6     char s;
 7     while(cin>>s)
 8     {
 9         int num;
10         int flag=2;
11         if(s>='A'&&s<='Z')
12         {
13             num=s-'A';
14             flag=1;
15 
16 
17         }
18         else num=s-'a';
19         int base=num;
20         if(flag==1)
21         {
22             for(int i=0;i<=num;i++)
23             {
24                 for(int l=0;l<(num-base)*2;l++)
25                     cout<<" ";
26                 for(int j=0;j<base;j++)
27                     cout<<abc[j]<<' ';
28                 cout<<abc[base];
29                 for(int k=base-1;k>=0;k--)
30                     cout<<' '<<abc[k];
31                     base--;
32                     cout<<endl;
33             }
34         }
35     }
36     return 0;
37 
38 }

 

posted @ 2019-02-22 23:35  -DP-  阅读(193)  评论(0编辑  收藏  举报