7-4 编程打印空心字符菱形 (10分)

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");
	}
}

猜你喜欢

转载自blog.csdn.net/xiahuayong/article/details/109191143