C语言循环输出图形
循环输出 AABA
ABCBA
ABCDCBA
ABCDEDCBA
ABCDEFEDCBA 思考了一阵,代码有点粗,谁有更好的办法?
#include <stdio.h>
int main(void)
{
char ch;
int i, j;
// 总共6行
for( i=1; i<=6; i++)
{
// 输出前面空格
j = 6 - i;
while( j!=0 )
{
printf(" ");
j--;
}
// 输出前半 字母
j = i;
ch = 'A';
while( j )
{
printf("%c", ch);
ch += 1;
j--;
}
// 输出后半 字母
j = i-1;
ch -= 1; // 这先把字母回退到 中间字母 以便后面递减输出
while( j )
{
ch -= 1;
printf("%c", ch);
j--;
}
printf("\n");
}
return 0;
} 用for循环然后ASCII码自加可以的吧 本帖最后由 jackz007 于 2019-12-5 14:05 编辑
#include <stdio.h>
#include <math.h>
main(void)
{
int i , j ;
for(i = 0 ; i < 6 ; i ++) {
for(j = 0 ; j < 15 - i ; j ++) printf(" ") ;
for(j = 0 ; j < i * 2 + 1 ; j ++) printf("%c" , 'A' + i - abs(j - i)) ;
printf("\n") ;
}
}
编译、运行实况:
C:\Bin>g++ -o x x.c
C:\Bin>x
A
ABA
ABCBA
ABCDCBA
ABCDEDCBA
ABCDEFEDCBA
C:\Bin> 本帖最后由 jackz007 于 2019-12-5 19:52 编辑
楼主,你的选择让我感到非常震惊,能不能说说,4 楼的代码有什么不能让你满意的地方吗?
不会是因为代码太短吧?
页:
[1]