C语言输出菱形图案和树形数字

思路

这个题也就只能恶心一次,恶心不到第二次,将菱形分为上下两瓣,一个变量控制多少行,一个变量控制输出多少空格,一个变量输出星号,后面两个变量都依赖于第一个变量,上代码

//输出一个菱形
void fun14() {
	//变量i控制行数,一共是4行
	for (int i = 1; i <= 4; i++)
	{
		//控制空格,空格分别是3 - 2 - 1 所以就是 4 - i 以i为参照物
		for (int j = 1; j <= 4 - i; j++)
		{
			printf(" ");
		}
		//控制星号,分别是1 - 3 - 5 - 7   可以看做为2 * i - 1 还是以i为参照物
		for (int k = 0; k < 2 * i - 1; k++)
		{
			printf("*");
		}
		//换行
		printf("\n");
	}
	//这个底下也差不多 
	for (int i = 1; i <= 3; i++)
	{
		//空格是 1 2 3 刚好就是i的值
		for (int j = 1; j <= i; j++)
		{
			printf(" ");
		}
		//星号是 5 - 3 - 1   i为1的时候 如何得到5呢?  7 - 1 * 2 直接套公式 没意思
		for (int k = 1; k <= 7 - i * 2; k++)
		{
			printf("*");
		}
		printf("\n");
	}
}

c620232d71190427

 

变种题

这个变种题跟菱形差不多,搞懂了菱形 这个就没有什么问题

d26f29e622190513

 

// 树形数字
void fun15() {
	//一样的 控制行数 9行
	for (int i = 1; i <= 9; i++)
	{
		//以i为参照物, 8 - 7 - 6 - 5 ... 行数 - i
		for (int j = 1; j <= 9 - i ; j++)
		{
			printf(" ");
		}
		// 1 3 5 7   i * 2 -1 
		for (int k = 1; k <= i * 2 - 1 ; k++)
		{
			//这里就直接输出i了 
			printf("%d", i);
		}
		printf("\n");
	}
}

 

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容