首页 > 其他分享 >用C语言做一个菱形图案

用C语言做一个菱形图案

时间:2023-08-18 19:00:43浏览次数:39  
标签:空格 星号 打印 C语言 图案 菱形 上半 line 我们

如何来完成一个菱形图案的打印呢?首先我们把它简单的看成两个三角组成的图案

用C语言做一个菱形图案_复制粘贴

用C语言做一个菱形图案_复制粘贴_02

,分为上下两部分,我们先来完成上半部分,首先肯定是一行一行来打印,为了后期维护方便我们用循环来完成,我们输入几行就打印几行。

用C语言做一个菱形图案_复制粘贴_03

那一行由什么组成的呢?是用空格和星号来组成的,我们先来第一步打印空格,我们经过发现,这个空格是有规律的我们假设输入了7行那第一行空格是6个第二行是5个第三行4个,那么我们就可以算出,一个公式,每次打印line减1行,为了让他可以继续往下减所以我们根据i的变化来完成,那么就是line减1减i就能得出每行打印几个空格。

用C语言做一个菱形图案_复制粘贴_04

下一步打印星号,根据观察我们发现星号也是有规律的,第一个打印一个第二行打印三个,以此类推,我们就可以得到,2乘i加1就能得出星号的规律,i等于零打印一个,i等于1打印三个,完美的完成了这个任务,然后每行打印完要换行,上半部分就打印完了。

用C语言做一个菱形图案_复制粘贴_05

那下半部分和上半部分其实是一样的,那我们可以直接把上半部分复制粘贴下来,改一下条件就可以使用了。根据观察下半部分的行数是比上半部分少一行的,所以行数减一就行,空格的判断条件我们来看一下,第一行是一个第二行是两个,以此往下类推,那么我们可以直接用i来判断,i等于0打印一个i等于1打印两个。

用C语言做一个菱形图案_复制粘贴_06

最后我们来观察一下星号的规律,第一行是11个第二行是9个,那我们是不是可以看做11是2*6-1得到的9就是2*5-1得到的,那这个6是怎么得到的呢?line减1得到的6,那么我们就可以算出2*(line-1),那为了让他可以变化,我们再给他减上一个i得出2*(line-1-i),最后我们在给他减上一个一就是我们需要的数字了,2*(line-1-i)-1,至此下半部分也完成了,那么一个完整的菱形就可以打印出来了。

用C语言做一个菱形图案_复制粘贴_07

用C语言做一个菱形图案_复制粘贴_08

完整代码。

用C语言做一个菱形图案_复制粘贴_09

标签:空格,星号,打印,C语言,图案,菱形,上半,line,我们
From: https://blog.51cto.com/u_16103543/7140811

相关文章

  • 笔记整理--C语言--C语言指针5分钟教程——转载
    C语言指针5分钟教程指针、引用和取值什么是指针?什么是内存地址?什么叫做指针的取值?指针是一个存储计算机内存地址的变量。在这份教程里“引用”表示计算机内存地址。从指针指向的内存读取数据称作指针的取值。指针可以指向某些具体类型的变量地址,例如int、long和double。指针也可......
  • 笔记整理--C语言--Stack的三种含义 - 博客 - 伯乐在线——转载
    【转载】:原文http://www.ruanyifeng.com/blog/2013/11/stack.htmlStack的三种含义-博客-伯乐在线-转载Stack的三种含义学习编程的时候,经常会看到stack这个词,它的中文名字叫做”栈”。理解这个概念,对于理解程序的运行至关重要。容易混淆的是,这个词其实有三种含义,适用于......
  • C语言的指针图示
    所谓指针定义,可以认为一个指针位置有2个结构,第一个结构就是指针所指向的地址,第二个结构就是地址里的数据。对赋值操作来说,指针变量在左边和右边不一样,在左边是取地址(也可以理解为容器),在右边的是取地址处的值(也就是容器里的东西)。//结合图示,这里的*ppp你觉得是修改哪个变量的......
  • 笔记整理--C语言--失落的C语言结构体封装艺术 - 博客 - 伯乐在线——转载
    失落的C语言结构体封装艺术-博客-伯乐在线转载1.谁该阅读这篇文章本文是关于削减C语言程序内存占用空间的一项技术——为了减小内存大小而手工重新封装C结构体声明。你需要基本的C语言的基本知识来读懂本文。如果你要为内存有限制的嵌入式系统、或者操作系统内核写代码,那......
  • 笔记整理--C语言--数组指针和指针数组的区别 - hongcha_717 - 博客园——转载
    【转载】:原文http://www.cnblogs.com/hongcha717/archive/2010/10/24/1859780.html数组指针和指针数组的区别数组指针(也称行指针)定义int(*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个......
  • 笔记整理--C语言--linux下错误的捕获:errno和strerror的使用——转载
    linux下错误的捕获:errno和strerror的使用经常在调用linux系统api的时候会出现一些错误,比方说使用open()、write()、creat()之类的函数有些时候会返回-1,也就是调用失败,这个时候往往需要知道失败的原因。这个时候使用errno这个全局变量就相当有用了。在程序代码中包含#include<e......
  • C语言标准发展史
     c语言标准:随着C语言在多个领域的推广、应用,一些新的特性不断被各种编译器实现并添加进来。于是,建立一个新的“无歧义、与具体平台无关的C语言定义”成为越来越重要的事情。 作为软件行业中的老大哥级人物。C语言也有自己的标准,而且是国际标准。如果大家遵循同一个标......
  • C语言中的关键字概述
    C语言的关键字是指具有特定功能的单词。可以使用关键字来帮助我们完成不同的事情。C语言最常见的关键字有32个,根据关键字的作用,可分为以下四类:一、数据类型关键字(共计12个):(1)char:声明字符型变量或函数返回值类型;(2)void:声明函数无返回值或无参数,声明无类型指针;(3)int: 声明整型变量或函数......
  • 笔记整理--C语言--assert用法总结——转载
    assert用法总结assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义:#include<assert.h>voidassert(intexpression);assert的作用是现计算表达式expression,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调用abort来......
  • 笔记整理--C语言--高质量C编程指南—林锐——转载
    高质量C编程指南—林锐头文件的作用略作解释:通过头文件来调用库功能。在很多场合,源代码不便(或不准)向用户公布,只要向用户提供头文件和二进制的库即可。用户只需要按照头文件中的接口声明来调用库功能,而不必关心接口怎么实现的。编译器会从库中提取相应的代码。头文件能加强......