|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
if (输入的字母在A 后面,即:ch-A>0)
{ 打印如:
A
ABA
ABCBA
}
else // 输入的字母在A 前面
{
A
A@A
A@?@A
}
问题是:正常打印后, 后面又打印了一些东西!!
请高手指正,多谢!
- #include <stdio.h>
- int main(void)
- {
- char ch;
- int m, i;
- int a, b;
-
- printf("pls input a character: ");
-
- while(scanf("%c", &ch))
- {
- m = ch - 'A';
-
- if (m >=0)
- {
- for (i=1; i<= m+1; ++i)
- {
- for (a= 1; a<= m+1-i; ++a)
- printf(" ");
-
-
- for (b= 'A'; b< 'A'+i; ++b) // 打印升序字母:i=1时 b= A<B-->A i=2时: b=A<C--> AB
- printf("%c", b); // i=3时:b=A <A+3=D --> ABC
-
-
- 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
- printf("%c", b); // i=3时:b=D-1-1=C-1 >=A -->BA
-
- printf("\n");
- }
- }
- else
- {
- m = -m;
-
- for (i=1; i<= m+1; ++i)
- {
- for (a= 1; a<= m+1-i; ++a)
- printf(" ");
-
-
- for (b= 'A'; b> 'A'-i; --b)
- printf("%c", b);
-
-
- for (b= 'A'-i+2; b<= 'A'; ++b)
- printf("%c", b);
-
- printf("\n");
- }
-
- }
- }
- return 0;
- }
- // 打印降序字母时,把要打印的字母向前移一位,才不会跟打印升序的字母重复;
- // ABCDE -->DECBA
复制代码
|
|