鱼C论坛

 找回密码
 立即注册
查看: 2979|回复: 0

@ 打印字母塔 的问题 ?

[复制链接]
发表于 2012-2-22 16:40:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x


if (输入的字母在A 后面,即:ch-A>0)
{  打印如:
    A
  ABA
ABCBA
}
else // 输入的字母在A 前面
{
      A
   A@A
A@?@A
}

问题是:正常打印后, 后面又打印了一些东西!!
请高手指正,多谢!
  1. #include <stdio.h>

  2. int main(void)
  3. {
  4.         char ch;
  5.         int m, i;
  6.         int a, b;
  7.        
  8.         printf("pls input a character: ");
  9.        
  10.         while(scanf("%c", &ch))
  11.         {
  12.                 m = ch - 'A';
  13.                
  14.                 if (m >=0)
  15.                 {
  16.                         for (i=1; i<= m+1; ++i)
  17.                         {
  18.                                 for (a= 1; a<= m+1-i; ++a)
  19.                                         printf(" ");
  20.                                
  21.                                
  22.                                 for (b= 'A'; b< 'A'+i; ++b)  //  打印升序字母:i=1时              b= A<B-->A                i=2时: b=A<C--> AB
  23.                                         printf("%c", b);                 //  i=3时:b=A <A+3=D -->  ABC
  24.                                
  25.                                
  26.                                 for (b= 'A'+i-2; b>= 'A'; --b)  //打印降序字母 i=1时b= B-1-1=A-1 >=A -->无字母   i=2时: b= C-1-1=B-1 >=A --> A
  27.                                         printf("%c", b);                        // i=3时:b=D-1-1=C-1 >=A -->BA
  28.                                
  29.                                 printf("\n");
  30.                         }
  31.                 }
  32.                 else        
  33.                         {
  34.                                 m = -m;
  35.                                
  36.                                 for (i=1; i<= m+1; ++i)
  37.                                 {
  38.                                         for (a= 1; a<= m+1-i; ++a)
  39.                                                 printf(" ");
  40.                                        
  41.                                        
  42.                                         for (b= 'A'; b> 'A'-i; --b)  
  43.                                                 printf("%c", b);                 
  44.                                        
  45.                                        
  46.                                         for (b= 'A'-i+2; b<= 'A'; ++b)  
  47.                                                 printf("%c", b);                 
  48.                                        
  49.                                         printf("\n");
  50.                                 }
  51.                                
  52.                         }
  53.         }
  54.         return 0;
  55. }

  56. // 打印降序字母时,把要打印的字母向前移一位,才不会跟打印升序的字母重复;
  57. // ABCDE -->DECBA
复制代码



小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-11 13:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表