7-4 编程打印空心字符菱形 (10分)
本题目要求读入菱形起始字母和菱形的高度,然后输出空心字符菱形。所谓“空心菱形”是指:每行由两端为字母、中间为空格的字符串构成,每行的字符串中心对齐;上半部分相邻两行字符串长度差2,且字母从给定的起始字母逐一递增;下半部分与上半部分对称。
输入格式:
输入在一行中给出起始字母(范围为英文大写字母A-G)和菱形的高度(为不超过10的奇数)。
输出格式:
输出空心字符菱形。
输入样例:
B 5
输出样例:
#include <stdio.h>
// 1、先画出实心菱形(把菱形分成上下俩部分,再分成正三角和倒三角 )
// 2、 把输入的N(n层)带入循环
// 3、 用if语句使菱形中心为空
// 4、 利用ASCII码的加减 实现字母组成
int main()
{
int n,i,j;
char c;
scanf("%c%d",&c,&n);
//针对奇数层的菱形 上部分
for(i=1;i<=n/2+1;i++)
{
//第一个为上班边的倒三角
for(j=n/2;j>=i;j--)
printf(" ");
//第二个上半边的正三角
for(j=0;j<i*2-1;j++)
{
//菱形中间的空心用if else来实现
if(j==0 || j==i*2-2)
printf("%c",c);
else
printf(" ");
}
c+=1;
printf("\n");
}
c-=1;
//下部分
for(i=1;i<=n/2;i++)
{
c-=1;
//第三个为下半边的正三角
for(j=1;j<=i;j++)
printf(" ");
//第四个三角形为倒三角形
for(j=n-2;j>=i*2-1;j--)
{
if(j==n-2 || j==i*2-1)
printf("%c",c);
else
printf(" ");
}
printf("\n");
}
}