7-3 编程打印空心字符菱形 (15 分)

本题目要求读入菱形起始字母和菱形的高度,然后输出空心字符菱形。所谓“空心菱形”是指:每行由两端为字母、中间为空格的字符串构成,每行的字符串中心对齐;上半部分相邻两行字符串长度差2,且字母从给定的起始字母逐一递增;下半部分与上半部分对称。

输入格式:

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

输出格式:

输出空心字符菱形。

输入样例:


B 5

结尾无空行

输出样例:

  B
 C C
D   D
 C C
  B

结尾无空行

思路:

        将上下两部分分开输出

        通过选择输出每行字符之间的空格

        通过ASCII码控制字符变化

代码如下:

//7-3 编程打印空心字符菱形 (15 分)
#include<stdio.h>
int main()
{
	int n,i,j,m;
	char c;
	scanf("%c %d", &c, &n);
	m = n/2;
	//先输出菱形的上部分 
	for (i=1; i<=m+1; i++) {
		for (j=0; j<m+1-i; j++) {		//每一行先输出字符前的空格 
			printf(" ");
		}
		for (j=0; j<=i*2-2; j++) {
			if ( j==0||j==i*2-2 ) {		//利用选择输出每行字符之间的空格 
				printf("%c", c);
			} else {
				printf(" ");
			}
		}
		c ++;							//控制字符变化 
		printf("\n");
	}
	c--;								//使字符为中间内行的字符 
	//再输出菱形的下部分 
	for (i=m; i>=1; i--) {				//与上部分思路相同 
		for (j=0; j<m+1-i; j++) {
			printf(" ");
		}
		c --;
		for (j=0; j<=i*2-2; j++) {
			if ( j==0||j==i*2-2 ) {
				printf("%c", c);
			} else {
				printf(" ");
			}
		}
		printf("\n");
	}
	return 0;
}

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值