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

it2023-10-24  73

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"); } }
最新回复(0)