打印菱形图案的两种方法

article/2025/9/27 12:57:57

打印菱形图案

本题要求编写程序,打印一个高度为n的、由“*”组成的正菱形图案。

输入格式:
输入在一行中给出一个正的奇数n。

输出格式:
输出由n行星号“*”组成的菱形,如样例所示。每个星号后跟一个空格。

输入样例:

7

输出样例:

方法一:
先找出前4行的规律,再找出后3行的规律。

前4行:

行数第一个*之前的空格数*的数量
16 (-2 × 1 + 8)1 (2 × 1 - 1)
24(-2 × 2 + 8)3 (2 × 2 - 1)
32(-2 × 3 + 8)5 (2 × 3 - 1)
40(-2 × 4 + 8)7 (2 × 4 - 1)

后3行:

行数第一个*之前的空格数*的数量
12 (2 × 1)5 (-2 × 1 + 7)
24(2 × 2)3 (-2 × 2 + 7)
36(2 × 3)1 (-2 × 3 + 7)
# include <stdio.h>int main()
{int n;scanf(" %d", &n);int i;int j;for (i=1; i<=(n+1)/2; ++i){for (j=1; j<=n+1-2*i; ++j){printf(" ");}for (j=1; j<=2*i-1; ++j){printf("* ");}printf("\n");}for (i=1; i<=(n-1)/2; ++i){for (j=1; j<=2*i; ++j){printf(" ");}for (j=1; j<=n-2*i; ++j){printf("* ");}printf("\n");}return 0;
}

方法二:
根据对称性将最中间的一行定义为第0行,在找规律的时候加上绝对值。

行数第一个*之前的空格数*的数量
-36(2 × 3)5 (-2 × 1 + 7)
-24(2 × 2)3 (-2 × 2 + 7)
-12(2 × 1)1 (-2 × 3 + 7)
00(2 × 0)5 (-2 × 1 + 7)
12(2 × 1)3 (-2 × 2 + 7)
24(2 × 2)1 (-2 × 3 + 7)
36(2 × 3)1 (-2 × 3 + 7)
# include <stdio.h>
# include <math.h>int main()
{int n;scanf(" %d", &n);int i = -n / 2;int j;while (i <= n/2){for (j=1; j <= 2*abs(i); ++j)printf(" ");for (j=1; j<=n-2*abs(i); ++j)printf("* ");printf("\n");++i;}return 0;
}

http://chatgpt.dhexx.cn/article/mPYeIkmY.shtml

相关文章

C语言——打印菱形

输入上半部分的行数来打印出一个菱形&#xff0c;效果如图&#xff1a; 这里将他分为两部分来分析&#xff0c;主要就是找每一部分的空格个数与 * 个数的规律 分析上半部分&#xff1a; 代码如下&#xff1a; //上半部分&#xff1a;for (int i 1; i < n; i) { //行数做循…

打印菱形

各种各样的打印菱形 打印菱形 打印菱形打印挖空菱形打印数字菱形 打印菱形 1.初级版 Description 由键盘输入正数n&#xff08;n<30&#xff09;&#xff0c;要求输出如下2*n1行的菱形图案。 输入样例 2 输出样例 代码实现1&#xff1a; #include <stdio.h> #in…

打印菱形-c语言

分析&#xff1a;打印菱形&#xff0c;可以分上下两个部分来打印&#xff0c;因为上下两个部分是不一样的。 以打印7行的菱形为例&#xff1a; 上半部分&#xff1a;总共7行&#xff0c;一行一行的打印&#xff0c;先打印空格(空格控制缩进)&#xff0c;再打印*。 打印空格&am…

打印菱形(C语言)

打印菱形 首先&#xff0c;可以将菱形分成上下两部分 上部分&#xff1b; 总行数 line 1.先打印空格&#xff0c;从图中可以发现&#xff1a; 左侧空格数由(line -1)每次减少一个&#xff0c;到0为止。&#xff08;右侧同理&#xff09; 2.后打印*&#xff0c;从图中可以发现&…

如何打印菱形

方法一 拆分法 拆分法(将*和空格分开来考虑&#xff0c;简化问题)&#xff08;菱形大小无上限&#xff09; #include<stdio.h> int main() {int n 0;//输入上半行的行数scanf("%d",&n);int i 0;//打印上半行for (i 0; i < n; i){//打印空格int j 0…

详细讲解:打印菱形(随心所欲版)

C语言打印菱形--超详细讲解 文章目录 前言&#xff1a; 一、打印菱形的基本思路二、操作步骤 1.确定行数和每行中的元素个数2.打印空格和*总结 前言 在学习C语言的时候&#xff0c;会遇到打印菱形的题目。在开始时我也只是用printf函数直接打印&#xff0c;那样也可以&#xf…

C语言—打印菱形,过程分析非常详细

如何打印菱形&#xff0c;过程分析非常详细 思路&#xff1a; 要打印这个图形&#xff0c;我们应该一行行得去打印&#xff0c;每一行先打印空格&#xff0c;再打印星号&#xff0c;比如&#xff0c;第一行我们应该先打印3个空格再打印1个星号。 我们可以发现前四行空格数在减少…

【C语言练习——打印菱形及其变形】

菱形及其变形 前言1、打印菱形——中间对齐版2、打印菱形——上左下左对齐版3、打印菱形——上右下右对齐版4、打印菱形——上左下右对齐版5、打印菱形——上右下左对齐版总结 前言 菱形是一种特殊的平行四边形&#xff0c;定义见百度百科 本文主要是写关于菱形的练习题&#x…

VBA: 字典的介绍与实例

基本语句 Sub dictest() 字典简介字典对象相当于一种联合数组&#xff0c;它是由具有唯一性的关键字&#xff08;Key&#xff09;和它的项&#xff08;Item&#xff09;联合组成VBA字典有6个方法Add , Keys, Items, Exists, Remove, RemoveAllVBA字典有4个属性Count , Key, It…

VBA dictionary的用法

1.VBA中创建字典。 dictionary是保存数据键和项目对的对象。 下面代码示范如何创建 Dictionary 对象&#xff1a; Dim myd As Object Set myd CreateObject("Scripting.Dictionary") d.Add "a", "Athens" ’添加键和项目。 d.Add "b…

VBA字典对象操作技巧

VBA 中集合的功能比较弱&#xff0c;常见的有数组 (array) 、集合 (Collection&#xff09;和字典&#xff0c;其中字典是 Key-Value Pair 类型的数据结构&#xff0c;适合按 Key 存储和查找。本篇介绍字典的操作方法。 VBA 语法本身并没有字典这种数据结构&#xff0c;需要引…

VBA 二维数组和字典

数据源: 二维数组和字典的主要使用方法 Sub test()Dim dict As ObjectSet dict CreateObject("Scripting.Dictionary")Set sh Worksheets("Sheet3")Set Rng sh.Range("A1:E" & sh.Range("E1").End(xlDown).Row)sh.Range("…

【原创】VBA学习笔记(313)VBA字典相关:遍历字典,用key查item, 用item查key的方法

1 字典的遍历方法 即使是后期绑定&#xff0c;也可以用 for each i in dict1.keys() 这里用到的 dict1.keys() 但不是 dict1.keys(i) 是可以的 Sub test_dict11()Dim dict1 As Object Set dict1 CreateObject("scripting.dictionary")dict1.Add 1, "h&qu…

【Excel VBA和Python对照学习】创建字典

Excel VBA和Python双语对照学习 我们从小学习语文&#xff0c;都用过字典。查字典时可以从第一页开始&#xff0c;一页一页地往下找&#xff0c;直到找到为止。这样做明显效率低下&#xff0c;特别是字的位置比较靠后的时候。所以查字典时不这样做&#xff0c;而是根据目录直接…

vba中字典的用法

字典对象的方法有6个&#xff1a; Add 添加一条关键字与条目 Keys 返回所有关键字(形成1维数组) Items 返回所有条目(形成1维数组) Exists 关键字是否存在(TRUE/FALSE) Remove 移除关键字与对应的条目 RemoveAll 移除所有关键字与对应的条 注意&#xff1a; 字典对象的属性有4…

Excel VBA Dictionary excel vba 字典大全

Excel VBA Dictionary - A Complete Guide - Excel Macro Mastery A Quick Guide to the VBA Dictionary FunctionParamsEarly binding reference“Microsoft Scripting Runtime” (Add using Tools->References from the VB menu)Declare (early binding)Dim dict As Scr…

vba字典学习案例

一、案例概述&#xff1a; 本次案例主要讲解字典的学习和应用&#xff0c;通过使用字典的方式来将每一行不重复的数值进行汇总形成一个字符串&#xff0c;且将该字符串展示到指定单元格中。二、案例展示&#xff1a; &#xff08;1&#xff09;源数据&#xff1a; &#xff08;…

VBA字典(dictionary)

这是我看到的最简单明了的Excel VBA字典(dictionary)的教程&#xff0c;把字典的应用&#xff0c;用短短几百字&#xff0c;全部道尽&#xff0c;简&#xff01;但精彩&#xff01;原文如下&#xff1a; 当年我(原作者&#xff1a;彭希仁)向LDY版主求教字典的时候&#xff0c;他…

在Excel VBA中使用字典

序言 VBA的基础数据类型里面并没有字典类型&#xff0c;但字典其实在很多应用场景中都很有用&#xff0c;那么如何在VBA中使用字典&#xff0c;本文就用几个例子和大家交流探讨一下。 场景1 某个医院每天都会从不同的制造商那里进三种材料中的一种&#xff0c;每天的进价都有…

VBA -[知识点]: 字典

VBA字典 记录一次VBA字典的使用部分代码 1. VBA 中创建一个字典对象2. 字典对象添加key 和 value3. 获取字典对象的key list4. 判断是否存在某个key5. 修改字典值6. 修改字典key 名称6. 删除某个item7. 删除所有item 记录一次VBA字典的使用 部分代码 Public Sub MainRun()1. …