iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言如何输出任意边长的菱形
  • 416
分享到

C语言如何输出任意边长的菱形

2023-06-22 07:06:43 416人浏览 薄情痞子
摘要

小编给大家分享一下C语言如何输出任意边长的菱形,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!     1.简单理解星号输出原理,将输出星号代码分为上方和下方两部分    &

小编给大家分享一下C语言如何输出任意边长的菱形,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

     1.简单理解星号输出原理,将输出星号代码分为上方和下方两部分

        首先,我们可以观察到如果边长为a的话,那么最长的一行的长度就为2*a-1,同时,每列星号都是对齐的,这说明我们如果想要输出星号,是有规律可循的,没星号的地方我们可以用空格来代替,这样一想,发现,我们好像可以使用x轴区间来控制空格和星号的输出

        例如,第三行,如果我们设第一个星号的x坐标为1的话,并在此基础上输出5个星号,那我们只需要写一串代码去控制在x属于[1,5]的区间上输出星号就行了

        同样,对于图片中第一行来说,我们只需要写一串代码来控制在x属于(2,4)的区间上输出一个星号就行了,如下

for(int j=1;j<2*3-1;j++)    //3为图片中菱形的边长{    if(j>2&&j<4)        printf("*");    else        printf(" ");}

        现在,由于行数不同,每行输出的星号数也就不同,那么,我们就可以找出输出星号数和行数的的关系

        但是,我们又可以看出,最长的一行星号上面的星号输出方式为由少到多,而最长一行下面的星号输出方式为由多到少,那么,对于上面和下面,我们要找的星号数与行数的关系也是不同的

     2.上方输出星号代码

        那么,接下来,我们先讨论最长一行星号的上方(包括最长一行星号),输出星号数与行数的关系

        首先,我们要遍历最长一行上方的所有行(包括最长一行),这时,就要用到for循环,这里的a表示最长的一行的行数,同时也是菱形的边长

for(int i=1;i<=a;i++)

C语言如何输出任意边长的菱形

        接下来,我们要找到行数与输出星号数的关系 

        经过观察,我们发现,如果a为边长,i表示行数,那么则在(a-i,2*a-(a-i))区间上要输出星号

     看到这里的友友们可以停下来思考一下,思考通了在接着看 

        好的,那么接下来,我们要遍历列,单单遍历行是不够的,不能控制星号以及空格的输出,所以,我们就需要遍历列

        如下,我们用到了输出星号的区间,如果列数在区间(a-i,2*a-(a-i))内,就输出星号,不在区间内,就输出空格,这样,就可以控制输出星号以及行数的关系了。

        当然,也别忘了,每输出一行星号就要换行,所以要写printf("\n"),但要写在遍历列for循环的外面,遍历行for循环的里面

        这就是上方输出星号的全部了,看到这儿,是不是想尝试自己编写下方星号的输出了呢,如果想的话,那就大胆的去尝试一下(* ̄︶ ̄)

for (int i = 1; i <= a; i++)//遍历菱形最长一行上方(包括最长的一行)所有行{printf(" ");//每行前面加空格,整齐好看for (int j = 1; j<=2*a-1; j++)        //遍历菱形最长一行上方(包括最长的一行)每行的所有列{if (j > a - i&& j <2 * a - (a - i))printf("*");elseprintf(" ");}printf("\n");}

     3.下方输出星号代码

        好的,那么下面,我们讨论最长一行星号的下方(不包括最长一行星号),输出星号数与行数的关系

        先写下方的遍历行,我们是从最长的一行的下一行开始输出,最长的一行的行数为a,那么,我们要定义行的初始值为a+1,行的最大值为2*a-1

        就像上方输出星号一样,接着要找输出星号的区间,经过观察,可以发现,列数在区间(i-a,2*a-(i-a))内,就输出星号,不在区间内,就输出空格,这样,就可以控制输出星号以及行数的关系了。

        接下来,要遍历列,代码如下

for(int i=a+1;i<=2*a-1;i++)

        当然,也别忘了,每输出一行星号就要换行,所以要写printf("\n"),但要写在遍历列for循环的外面,遍历行for循环的里面

        这就是下方输出星号的全部了(* ̄︶ ̄)

for (int i =  a + 1; i <= 2*a-1 ; i++)//遍历菱形最长一行上方(包括最长的一行)所有行{printf(" ");//每行前面加空格,整齐好看for (int j = 1; j <= 2 * a - 1; j++)//遍历菱形最长一行下方(不包括最长的一行)每行的所有列{if (j > i - a && j < 2*a - (i - a))printf("*");elseprintf(" ");}printf("\n");}

全部代码如下

#include <stdio.h>#include <stdlib.h>int main(void){int a;//菱形的边长//注意,由于屏幕的大小限制,过大的边长(比如100)会导致无法输出正常的菱形,望理解printf("输入菱形的边长:\n");scanf_s("%d", &a);for (int i = 1; i <= a; i++)//遍历菱形最长一行上方(包括最长的一行)所有行{printf(" ");//每行前面加空格,整齐好看for (int j = 1; j<=2*a-1; j++)        //遍历菱形最长一行上方(包括最长的一行)每行的所有列{if (j > a - i&& j <2 * a - (a - i))printf("*");elseprintf(" ");}printf("\n");}for (int i =  a + 1; i < 2*a + 1; i++)//遍历菱形最长一行上方(包括最长的一行)所有行{printf(" ");//每行前面加空格,不和边框拥挤,可去掉for (int j = 1; j <= 2 * a - 1; j++)        //遍历菱形最长一行下方(不包括最长的一行)每行的所有列{if (j > i - a && j < 2*a - (i - a))printf("*");elseprintf(" ");}printf("\n");}system("pause");return 0;}

看完了这篇文章,相信你对“C语言如何输出任意边长的菱形”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网其他教程频道,感谢各位的阅读!

--结束END--

本文标题: C语言如何输出任意边长的菱形

本文链接: https://www.lsjlt.com/news/303169.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言如何输出任意边长的菱形
    小编给大家分享一下C语言如何输出任意边长的菱形,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!     1.简单理解星号输出原理,将输出星号代码分为上方和下方两部分    &...
    99+
    2023-06-22
  • C语言输出任意边长的菱形
    目录     1.简单理解星号输出原理,将输出星号代码分为上方和下方两部分     2.上方输出星号代码     3.下方输出星号代码全部代码如下        经过一段时间的学习后...
    99+
    2024-04-02
  • 怎么用c语言输出空心菱形
    使用C语言可以通过嵌套循环来输出空心菱形。以下是一个示例代码: #include int main() { int n,...
    99+
    2023-10-27
    c语言
  • C语言中如何利用循环嵌套输出一个菱形
    目录利用循环嵌套输出一个菱形C语言输出半个菱形总结利用循环嵌套输出一个菱形 #include<stdio.h> int main() { int i, j; for...
    99+
    2023-02-06
    C语言循环嵌套 循环嵌套输出菱形 C语言循环
  • C语言如何格式化输出控制长度
    这篇文章主要介绍了C语言如何格式化输出控制长度的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言如何格式化输出控制长度文章都会有所收获,下面我们一起来看看吧。c语言格式化输出控制长度实现ls命令的时候,输出的...
    99+
    2023-06-16
  • 如何在c语言中求字符串长度并输出
    这期内容当中小编将会给大家带来有关如何在c语言中求字符串长度并输出,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。C语言是什么C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,使用C语言...
    99+
    2023-06-15
  • c语言如何反序输出
    要反序输出一个数组或者字符串,可以使用以下方法:1. 对于数组,可以使用循环从最后一个元素开始遍历,依次输出每个元素。例如:```c...
    99+
    2023-08-18
    c语言
  • c语言如何输出ascii码
    在C语言中,可以通过使用整数类型的变量来存储ASCII码值,并通过printf函数来输出。以下是一种常见的方法: #include ...
    99+
    2023-10-28
    c语言
  • 使用c语言如何输出一个杨辉三角形
    本文章向大家介绍使用c语言如何输出一个杨辉三角形,主要包括使用c语言如何输出一个杨辉三角形的使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。C语言是什么C语言是一门面向过程的、抽象化的通用程序设...
    99+
    2023-06-06
  • go语言如何求任意类型切片的长度
    这篇文章将为大家详细讲解有关go语言如何求任意类型切片的长度,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。go适合做什么go是golang的简称,而golang可以做服务器端开发,且golang很适合做日...
    99+
    2023-06-14
  • c语言printf如何输出中文
    在C语言中,要输出中文字符,需要使用宽字符函数wprintf()和宽字符字符串类型wchar_t。以下是一个示例代码:```c#in...
    99+
    2023-10-11
    c语言
  • c语言输出nan如何解决
    在C语言中,当计算结果为NaN时,可以使用isnan()函数来判断是否为NaN,然后进行相应的处理。 示例代码如下: #includ...
    99+
    2024-04-08
    c语言
  • c语言中圆的周长和面积怎么输出
    为了计算圆的周长和面积,需要获取其半径,再根据公式计算周长(2 π 半径)和面积(π * 半径平方),最后输出结果。 如何用 C 语言输出圆的周长和面积 为了计算和输出圆的周长和面...
    99+
    2024-04-28
    c语言
  • 如何用c语言编程出心形(C语言简单心形代码)
    以下是一个简单的C语言代码,可以在命令行中绘制一个心形:```c#include int main() {printf(" **...
    99+
    2023-09-22
    c语言
  • 如何利用C语言输出3D立体感心形图详解
    目录★头文件部分:★主函数外自定义函数部分:★主函数部分:总结首先我先在每行(除空白以及{}外)代码上标上序号(无序号源码放在了文末) #include <stdio.h&...
    99+
    2024-04-02
  • c语言如何实现声音输出
    在C语言中,可以使用音频库来进行声音输出。以下是使用ALSA音频库来实现声音输出的示例代码: #include int main...
    99+
    2023-10-25
    c语言
  • c语言如何输出时间格式
    C语言中,可以使用ctime函数将时间以字符串格式输出。ctime函数的原型如下:```cchar *ctime(const tim...
    99+
    2023-08-31
    c语言
  • C语言如何输出100到200的素数
    今天小编给大家分享一下C语言如何输出100到200的素数的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。<1>这个...
    99+
    2023-06-17
  • c语言中double类型的数如何输出
    在C语言中,可以使用 printf 函数将 double 类型的数输出到屏幕上。可以使用 %lf 格式化代码来指定输出的是一个 do...
    99+
    2024-02-29
    c语言
  • c语言如何倒序输出字符串
    有多种方法可以实现字符串的倒序输出,以下是其中一种方法: #include <stdio.h> #include <...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作