菱形的组成

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

@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

目录
相关文章
|
7月前
虚继承解决菱形继承的原理
虚继承解决菱形继承的原理
《菱形》 代码分享
《菱形》 代码分享
44 0
|
5月前
|
编译器 C++ 开发者
C++一分钟之-多重继承与菱形问题
【7月更文挑战第19天】C++的多重继承允许类从多个基类派生,但引入了菱形问题,即类D通过B和C(都继承自A)双重继承A,可能导致数据冗余和二义性。解决这个问题的关键是**虚继承**,通过`virtual`关键字确保基类A只被继承一次,消除冲突。理解并适当使用虚继承是处理这类问题的关键,有助于保持代码的清晰和正确性。
96 0
|
7月前
|
程序员 编译器 C++
【继承】菱形继承以及虚拟菱形继承
【继承】菱形继承以及虚拟菱形继承
wustojc5006菱形图案
wustojc5006菱形图案
41 0
|
7月前
|
C++
【C++】:菱形继承和虚拟继承
【C++】:菱形继承和虚拟继承
85 0
复杂的菱形继承及菱形虚拟继承(详解)
复杂的菱形继承及菱形虚拟继承(详解)
75 0
|
编译器 C++
菱形继承和C++相关问题
菱形继承和C++相关问题
|
算法 Java
java 金字塔 空心金字塔 空心菱形 详解(通俗易懂)
分享以下用java如何打印出金字塔,空心金字塔和空心菱形,适合初学者思维锻炼,思路分析是重点。
297 0
java 金字塔 空心金字塔 空心菱形 详解(通俗易懂)
【C++之纯虚函数与抽象类1】圆形、矩形、三角形的面积
【C++之纯虚函数与抽象类1】圆形、矩形、三角形的面积