菱形的组成

举报
lovevivi 发表于 2022/08/12 05:49:28 2022/08/12
【摘要】 @TOC 菱形#define _CRT_SECURE_NO_WARNINGS//vs中解决scanf安全问题#include<stdio.h>int main(){ int i = 0; int j = 0; int n = 0; scanf("%d", &n); for (i = 0; i < n; i++)//n为7的上三角形 { for (j = 0; j < n - 1 - i; ...

@TOC

菱形

#define _CRT_SECURE_NO_WARNINGS//vs中解决scanf安全问题
#include<stdio.h>
int main()
{
	int i = 0;
	int j = 0;
	int n = 0;
	scanf("%d", &n);
	for (i = 0; i < n; i++)//n为7的上三角形
	{
		for (j = 0; j < n - 1 - i; j++)
		{
			printf(" ");
		}
		for (j = 0; j <= i; j++)
		{
			printf("%c ", '*');
		}
		printf("\n");
	}
	for (i = 0; i < n - 1; i++)//n为6的下三角形
	{
		for (j = 0; j <= i; j++)
		{
			printf(" ");
		}
		for (j = n - 1 - 1 - i; j >= 0; j--)
		{
			printf("%c ", '*');
		}
		printf("\n");
	}
	return 0;
}

`在这里插入图片描述

假设n为7的菱形
我们可以把它分为两部分 上三角形 下三角形

1.上三角形

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

我们发现想要将三角形转换成菱形的上部分 就需要思考左边界与 * 空格个数
以n为7的三角形为例
顶点与左边界的空格个数是6 ------>n-1
顶点下一个*的空格个数是5------->n-1-1
最下面的与左边界空格个数是 0
在这里插入图片描述

2.下三角形

在这里插入图片描述
在这里插入图片描述
n为7 表示6的下三角形 —>n-1
第一次 是6个数 下标从0取到5 5----->n-1-1
第二次 是 5个数 下标从0取到4 4------->n–1-1
即从n-1-1-i开始到0
在这里插入图片描述

这里的顶点与左边界的空格个数是 0
依次增加 1 到最后顶点到达最大空格个数
在这里插入图片描述
由于我们菱形的下三角形的空格个数需从1开始才能保证 两个三角形连接
所以 j<i改成 j<=i

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。