注册 登录
编程论坛 C语言论坛

编程打印空心字符菱形

黑暗骑士5D 发布于 2019-12-04 08:15, 1716 次点击
本题目要求读入菱形起始字母和菱形的高度,然后输出空心字符菱形。所谓“空心菱形”是指:每行由两端为字母、中间为空格的字符串构成,每行的字符串中心对齐;上半部分相邻两行字符串长度差2,且字母从给定的起始字母逐一递增;下半部分与上半部分对称。

输入格式:

输入在一行中给出起始字母(范围为英文大写字母A-G)和菱形的高度(为不超过10的奇数)。

输出格式:

输出空心字符菱形。

输入样例:


B 5
输出样例:

  B
 C C
D   D
 C C
  B
1 回复
#2
rjsp2019-12-04 10:07
你哪里不会要说出来,否则就成了替你做作业

程序代码:
#include <stdio.h>

void foo( char ch, unsigned n )
{
    for( unsigned i=0; i!=n; ++i )
    {
        unsigned j = i<n/2 ? n/2-i : i-n/2;
        printf( "%*c", j+1, n/2-j+ch );
        if( j == n/2 )
            putchar( '\n' );
        else
            printf( "%*c\n", 2*(n/2-j), n/2-j+ch );
    }
}

int main( void )
{
    foo( 'B', 5 );
    foo( 'A', 15 );
}

1