C语言 输出字母图案(金字塔)

c语言基础 专栏收录该内容
1 篇文章 0 订阅

下面两题在cdsn找了很久,几乎没有合适的答案
一,请编写输出以下图案的程序,图案的行数由输入的整数值确定。

   A
  BBB
 CCCCC
DDDDDDD
  ...

#include <stdio.h>

int main(void)
{
	int n,i,b,c;
	char ch = 'A';
	printf("请输入你要打印的行数:\n");
	scanf("%d",&n);

	for(i = 1;i <= n;i++)    //i是金字塔行数 大小由输入值n确定
	{
		for(b = 0;b < n - i;b++)    //b是一行中空格的个数
		{
			putchar(' ');
		}
		for(c = 0;c < 2 * i - 1;c++)  //c是一行中的字母的个数
		{
			printf("%c",ch);
		}
		printf("\n");
		ch++;     //打印完一行,ch再进行++;
	}
	return 0;
}

思路:
以五行金字塔为例

比较得出i与b和c的关系即可。

二,请编写输出以下图案的程序。

   A
  ABA
 ABCBA
ABCDCBA


#include <stdio.h>

int main(void)
{
	int n,i,b,c,d;
	char ch='A';
	printf("请输入你要打印的行数:\n");
	scanf("%d",&n);

	for(i=1;i<=n;i++)
	{
		ch='A';
		for(b=0;b<n-i;b++)
		{
			putchar(32);
		}
		for(c=0;c<i;c++)
		{
			printf("%c",ch++);
		}
		ch--;
		for(d=0;d<i-1;d++)
		{
			printf("%c",--ch);
		}
		printf("\n");
	}
	return 0;
}

说一下思路:
相比上一题,这题主要分解为打印左边和打印右边两部分。

  • 8
    点赞
  • 2
    评论
  • 28
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值