C语言打印菱形

题目:

很多初学者在看到这一幕可能已经懵了,最大的问题是不知该如何下手,我在之前的作品中一直提到过,实现一个功能需要很多步骤的,如果想一步到位的话,那对我们的编程思维来说是很难做到的。学习编程的过程是由简到难的,下面我就带着各位一步一步来实现。

1.解题思路

1.由图可知,这个菱形最远端的距离为13个*,从上到下一共13行,从星的个数开始分析,第一行一个,随后往下递增2,当达到13个时,又开始递减2直到一个,我们可以从图形的每一行坐标与个数的关系开始入手,可以得知,每一行的最大个数是13,第一行是一个,相当于用13个减12个,而12由等于个数最多的坐标与第一行的差值的两倍,这样有点牵强?接着看,第二行,个数为3,它与第七行(个数为13个的行)的差值*2=10;13-10=3,刚好等于它这一行的个数这样我们就找到规律了,即每一行的个数等于13-2*(行坐标的差值),别着急,当你写上去后,你会发现,是个三角形,没错,它还得需要空格才能打印出一个完整的菱形。这里看看空格的个数,还是基于上面的思路,找与行坐标的关系,第0行(计算机表示)6个,第一行5个,直到第6行0个,然后第七行1个,会发现,空格的个数等于行坐标的差值。这样是不是就一目了然了?

2.实现代码

#include<stdio.h>
#include<stdlib.h>



int main(){
	for(int i=0;i<13;i++){
		int a_num=13-2*abs(6-i);
		int b_num=abs(6-i);
		for(int j=0;j<b_num;j++) printf(" ");
		for(int j=0;j<a_num;j++) printf("*");
		printf("\n");
		
		
	}
	return 0;
}

abs函数:求出两者的差值(绝对值),这里需要导入stalib.h头文件,

如果需要自定义菱形的长,只需要将13的位置改为所输入的值即可。 

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2023-12-10 03:26:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-10 03:26:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-10 03:26:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-10 03:26:01       20 阅读

热门阅读

  1. Linux 基础知识整理(五)

    2023-12-10 03:26:01       39 阅读
  2. linux中slab与slub的实现区别

    2023-12-10 03:26:01       29 阅读
  3. slot插槽

    2023-12-10 03:26:01       37 阅读
  4. 500 行代码 实现 的 Linux 容器 sandbox

    2023-12-10 03:26:01       47 阅读
  5. Spring MVC 接收请求参数所有方式2023-AI

    2023-12-10 03:26:01       32 阅读
  6. LeetCode435. Non-overlapping Intervals

    2023-12-10 03:26:01       27 阅读
  7. dialog打开时重新渲染

    2023-12-10 03:26:01       39 阅读
  8. mysql 语言学习

    2023-12-10 03:26:01       30 阅读
  9. LeetCode-18.四数之和

    2023-12-10 03:26:01       42 阅读
  10. 从 C 到 C++ 编程 — 面向对象编程

    2023-12-10 03:26:01       30 阅读
  11. 【C++容器篇】关联容器知识点总结【超详细】

    2023-12-10 03:26:01       26 阅读
  12. 前端面试提问(4)

    2023-12-10 03:26:01       23 阅读
  13. AlexNet 阅读笔记

    2023-12-10 03:26:01       33 阅读