求助:一个C问题(百思不得其解)!
AABA
ABCBA
ABCDCBA
ABCDEDCBA
要求自己输入一个字母,按照上面格式打印出来
比如~输入E就全部打印上面的图案.
百思不得其解望指点....金字塔图形算法已经明了....
[ 本帖最后由 dsyayo 于 2010-2-8 12:51 编辑 ]
for(i=1;i<=heng;i++) { for(j=1;j<=heng - i;j++)//输出空格 { printf("%c",32); } for(a=1;a<=i;a++) { printf("%c",a+64); } for(b= i - 1;b>=1;b--) { printf("%c",b+64); } printf("\n"); }三个循环,输出空格,正序输出,反序输出。另外,建议不要直接用ASCII码
明白了,for(a=1;a<=i;a++)应该是for(a=1;a<=2*i-1;a++)
#include<stdio.h> void printchars(char ch, int line, int offset) { int i; int lower = ch - offset; int chs = offset * 2 - 1; int blank = chs - offset - line; for (i = 0; i <= blank; i++) { printf("%c", ' '); } for( i = 0; i <= line; i++) { printf("%c", lower++); } for(i = 0, lower -= 2; i < line; i++) { printf("%c", lower--); } } void printline(char ch, int offset) { int i; for(i = 0; i <= offset; i++) { printchars(ch, i, offset); printf("\n"); } } int main() { char ch; scanf("%c",&ch); if (ch >= 'A' && ch <= 'Z') { printline(ch, ch-65); } else if (ch >= 'a' && ch <='z') { printline(ch, ch-97); } else { printf("input error\n"); } return 0; }