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

article/2025/9/27 13:32:03

菱形及其变形

  • 前言
  • 1、打印菱形——中间对齐版
  • 2、打印菱形——上左下左对齐版
  • 3、打印菱形——上右下右对齐版
  • 4、打印菱形——上左下右对齐版
  • 5、打印菱形——上右下左对齐版
  • 总结


前言

菱形是一种特殊的平行四边形,定义见百度百科

在这里插入图片描述

本文主要是写关于菱形的练习题,在屏幕上打印菱形

在这里插入图片描述


1、打印菱形——中间对齐版

上一篇练习过打印上三角、下三角,因此,将打印上三角中间版、下三角中间版的代码合并可打印出菱形:

int main()
{int n = 0;scanf("%d", &n);for (int i = 0; i < n; i++){int j = 0;for (j = 0; j < n - 1 - i; j++){printf(" ");}//打印*for (j = 0; j < 2 * i + 1; j++){printf("*");}printf("\n");}//打印下半部分 for (int i = 0; i < n; i++){int j = 0;for (j = 0; j <= i; j++){printf(" ");}//打印*for (j = 0; j < (2*n - 1 - i* 2 ); j++){printf("*");}printf("\n");}return 0;
}

结果见下图,中间两行有错位:

在这里插入图片描述

因此不能简单的合并,对下三角的代码进行修改:

//打印菱形,没有空格版
int main()
{int n = 0;scanf("%d", &n);//打印上半部分 nfor (int i = 0; i < n; i++){//打印一行//打印空格int j = 0;for (j = 0; j < n - 1 - i; j++){printf(" ");}//打印*for (j = 0; j < 2 * i + 1; j++){printf("*");}printf("\n");}//打印下半部分 n-1for (int i = 0; i < n - 1; i++){//打印一行//打印空格int j = 0;for (j = 0; j <= i; j++){printf(" ");}//打印*for (j = 0; j < (n - 1 - i) * 2 - 1; j++){printf("*");}printf("\n");}return 0;
}

结果见下图:

在这里插入图片描述

2、打印菱形——上左下左对齐版

//打印菱形,上左 下左版
int main()
{int n = 0;scanf("%d", &n);//打印上半部分 	for (int i = 0; i < n; i++){int j = 0;//打印*for (j = 0; j < 2 * i + 1; j++){printf("*");}printf("\n");}//打印下半部分 for (int i = 0; i < n - 1; i++){int j = 0;//打印*for (j = 0; j < (n - 1 - i) * 2 - 1; j++){printf("*");}printf("\n");}return 0;
}

结果见下图,上下三角都是左对齐,实际就是一个三角形了:

在这里插入图片描述

3、打印菱形——上右下右对齐版

//打印菱形, 上右下右对齐版
int main()
{int n = 0;scanf("%d", &n);//打印上半部分 nfor (int i = 0; i < n; i++)//一共n行{int j = 0;for (j = 0; j < (2 * n - 1) - (2 * i + 1); j++)//每一行开始打印几个空格{printf(" ");}//打印*for (j = 0; j < 2 * i + 1; j++)//每一行打印几个 *{printf("*");}printf("\n");//换行}//打印下半部分 for (int i = 0; i < n-1; i++){//打印一行//打印空格int j = 0;for (j = 0; j <= 2*i+1; j++){printf(" ");}//打印*for (j = 0; j < (n - 1 - i) * 2 - 1; j++){printf("*");}printf("\n");}return 0;
}

结果见下图,上下三角都是右对齐,实际也是一个三角形了:

该处使用的url网络请求的数据。

4、打印菱形——上左下右对齐版

//打印菱形, 上左下右对齐版
int main()
{int n = 0;scanf("%d", &n);//打印上半部分 	for (int i = 0; i < n; i++){int j = 0;//打印*for (j = 0; j < 2 * i + 1; j++){printf("*");}printf("\n");}//打印下半部分 n-1for (int i = 0; i < n - 1; i++){//打印一行//打印空格int j = 0;for (j = 0; j <= 2 * i + 1; j++){printf(" ");}//打印*for (j = 0; j < (n - 1 - i) * 2 - 1; j++){printf("*");}printf("\n");}return 0;
}

结果见下图:

在这里插入图片描述

5、打印菱形——上右下左对齐版

//打印菱形, 上右下左对齐版
int main()
{int n = 0;scanf("%d", &n);//打印上半部分 nfor (int i = 0; i < n; i++)//一共n行{//打印一行//打印空格int j = 0;for (j = 0; j < (2 * n - 1) - (2 * i + 1); j++)//每一行开始打印几个空格{printf(" ");}//打印*for (j = 0; j < 2 * i + 1; j++)//每一行打印几个 *{printf("*");}printf("\n");//换行}//打印下半部分 n-1for (int i = 0; i < n-1; i++){//打印一行//打印空格int j = 0;//打印*for (j = 0; j < (n - 1 - i) * 2 - 1; j++){printf("*");}printf("\n");}return 0;
}

结果见下图:

在这里插入图片描述


总结

本文练习打印菱形及其变形,主要练习了:

  • 外循环、内循环的应用
  • 注意行数、空格数、符号*数之间的数学关系式

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

相关文章

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. …

VBA字典(详解,示例)

文章目录 创建字典对象字典的属性|方法案例去重求和计数匹配key的组合和分割字典value多字段累加字典求和和计数同时进行类似sql的join操作 创建字典对象 后期绑定&#xff1a;方便代码在其他电脑上运行&#xff0c;推荐。 dim dic as object Set dic CreateObject("scr…

JavaScript 动态生成表格

要求&#xff1a; HTML标签只写一行表头通过JS来写动态的表格&#xff08;有多少组数据&#xff0c;就自动创建多少行表格&#xff09;为学习和演示&#xff0c;采用固定的数据&#xff0c;不涉及调用后台数据 实现效果&#xff1a; 代码实现&#xff1a; <!DOCTYPE html…

利用JS代码完成动态生成表格案例及解析

思路&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content&…

js自动生成html报表,JavaScript实现动态生成表格

本文实例为大家分享了JavaScript实现动态生成表格的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下 功能描述 在输入框中输入行和列&#xff0c;点击按钮&#xff0c;生成拥有对应行和列的表格。如下图所示&#xff1a; 分析 HTML界面设计 行&#xff1a; 列&#xf…

JavaScript 动态生成表格 及删除表格

创建 表格表头 <body> <table> <thead> <tr> <td>序号</td> <td>姓名</td> <td>性别</td> <td>年龄</td> <td>地址</td> <td>删除</td> </tr> </thead> <t…

js动态生成表格实例

效果图 代码 <!DOCTYPE html> <html> <body> <div><h1>动态生成表格</h1><div id"table1">行&#xff1a;<input type"text" id"h"/>列&#xff1a;<input type"text" id"…

在html中生成动态表格数据,JavaScript实现网页动态生成表格

JavaScript(JS)网页–动态生成表格,供大家参考,具体内容如下 在网页中,动态生成列表的内容,将数组中的object加入到列表中(没学到数据库)。在HTML中创建thead,然后通过JavaScipt动态生成tbody。并且在每行最后申城一个单元格,加入删除操作,点击删除可以删除此行。动态生…

使用JS动态生成表格

代码如下&#xff1a; <!DOCTYPE html> <html> <head><meta charset"utf-8" /><title></title><script>var bgColor;var list [{ id: 1, country: 中国, capital: 北京,},{ id: 2, country: 美国, capital: 纽约,},{ id…