字母金字塔------代码笔记

7、编写一个程序,用户输入某个大写字母,产生 一个金字塔图案。例如用户输入字母D,则产生如 下图案:
A
ABA
ABCBA
ABCDCBA

更新优化代码:

  1 #include <stdio.h>
  2
  3 int main(void)
  4 {
  5     char ch;
  6     int line,i,j,k;
  7
  8     printf("请输入一个字符:");
  9     scanf("%c",&ch);
 10
 11     line = ch - 'A'+1;
 12
 13     for(i=0;i<line;i++){
 14         for(j=0;j<line-i;j++){
 15             printf("%c",' ');//输出每层空格
 16         }
 17         for(k=0;k<i;k++){//k=0;k<0:不进入循环
 18             printf("%c",'A'+k);//输出顺序字母
 19         }
 20         printf("%c",'A'+i);//输出中间字母
 21         for(;k>0;k--){
 22             printf("%c",'A'+k-1);//输出逆序字母
 23         }
 24         printf("\n");
 25     }
 26     return 0;
 27 }
  1 #include <stdio.h>
  2 
  3 int main(void)
  4 {
  5     char capital,total_line,total_capital,i=0;
  6 
  7     printf("请输入一个大写字母:");
  8     scanf("%c",&capital);
  9 
 10     for(total_line = capital-'A';total_line>=0;total_line--)//65为'A',行数
 11     {
 12 
 13         for(i=total_line;i>0;i--)//金字塔前空白图案
 14         {
 15             printf(" ");
 16         }//i释放为0
 17         for(total_capital=total_line+'A';total_capital<=capital;total_capital++)
 18         {
 19             printf("%c",'A'+i);
 20             i++;
 21         }
 22         if(i>1)
 23         {
 24             for(i-=2;i>=0;i--)
 25             {
 26                 printf("%c",'A'+i);
 27             }
 28         }
 29         else
 30         {
 31             i = 0;
 32         }
 33 
 34         for(i=total_line;i>0;i--)
 35         {
 36             printf(" ");
 37         }
 38         printf("\n");
 39     }
 40     return 0;
 41 }


执行后效果:
请输入一个大写字母:Z
                         A                         
                        ABA                        
                       ABCBA                       
                      ABCDCBA                      
                     ABCDEDCBA                     
                    ABCDEFEDCBA                    
                   ABCDEFGFEDCBA                   
                  ABCDEFGHGFEDCBA                  
                 ABCDEFGHIHGFEDCBA                 
                ABCDEFGHIJIHGFEDCBA                
               ABCDEFGHIJKJIHGFEDCBA               
              ABCDEFGHIJKLKJIHGFEDCBA              
             ABCDEFGHIJKLMLKJIHGFEDCBA             
            ABCDEFGHIJKLMNMLKJIHGFEDCBA            
           ABCDEFGHIJKLMNONMLKJIHGFEDCBA           
          ABCDEFGHIJKLMNOPONMLKJIHGFEDCBA          
         ABCDEFGHIJKLMNOPQPONMLKJIHGFEDCBA         
        ABCDEFGHIJKLMNOPQRQPONMLKJIHGFEDCBA        
       ABCDEFGHIJKLMNOPQRSRQPONMLKJIHGFEDCBA       
      ABCDEFGHIJKLMNOPQRSTSRQPONMLKJIHGFEDCBA      
     ABCDEFGHIJKLMNOPQRSTUTSRQPONMLKJIHGFEDCBA     
    ABCDEFGHIJKLMNOPQRSTUVUTSRQPONMLKJIHGFEDCBA    
   ABCDEFGHIJKLMNOPQRSTUVWVUTSRQPONMLKJIHGFEDCBA   
  ABCDEFGHIJKLMNOPQRSTUVWXWVUTSRQPONMLKJIHGFEDCBA  
 ABCDEFGHIJKLMNOPQRSTUVWXYXWVUTSRQPONMLKJIHGFEDCBA 
ABCDEFGHIJKLMNOPQRSTUVWXYZYXWVUTSRQPONMLKJIHGFEDCBA


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值