C语言:字母金字塔

题目:编写一个程序,提示用户输入大写字母。使用嵌套循以下面金字塔型的格式打印字母

需求:打印字母金字塔,要根据用户输入的字母来决定,如输入大写字母:A,则出现以下图形。

    A
   ABA
  ABCBA
 ABCDCBA
ABCDEDCBA

设计方案:本程序采用循环结构,但是为了避免出现多层嵌套循环,所以只用了一次循环,另一次循环是用来输出空格,这个代码的核心则是对变量flag的控制。

具体思路:可以发现这个代码是对称结构的,在每一行的输出中,输出一个字母则让flag自增一次,直至最中间的字母,接下来就是让flag自减,没减少一次输出一个字母,直至flag变为0

代码:以下是C语言实现

/*
 * pyramid.c
 *
 *  Created on: 2020年3月12日
 *      Author: AFei2019
 */

#include <stdio.h>

int main(void) {
	char letter;
	char temp;
	int flag;	//相当与一个“指针”,用来判断何时到达中间位置
	int i, j;	//两层循环因子 i用来循环行数,j用来循环字符输出
	printf("input letter:\n");
	fflush(stdout);
	scanf_s("%c", &temp);
	for (i = 0; i < 5; i++) {
		flag = 0;
		letter = temp - 1;
		for (j = 4; j > i; j--) {
			printf(" ");
		}
		while (flag <= i) {
			letter += 1;
			printf("%c", letter);
			flag++;
		}
		flag -= 1;
		if (flag != 0) {
			while (flag) {
				letter -= 1;
				printf("%c", letter);
				flag--;
			}
		}
		printf("\n");
	}
	system("pause");
	return 0;
}

如果觉得代码不错的话,点个赞再走吧
博主QQ:2240172425,有什么不懂的可以加我好友,顺便一起交流交流学习经验(笑)

发布了1 篇原创文章 · 获赞 0 · 访问量 25

猜你喜欢

转载自blog.csdn.net/a312568/article/details/104828151