快捷搜索: 王者荣耀 脱发

C语言之打印菱形图详解

前言

经过一学期的学习,C语言算是入门了。这个寒假准备花点时间把主要知识点和题目理一下。本篇文章主要讲解如何用C语言实现星形图里的菱形的打印。

一、何为星形图

顾名思义,即用 * 与空格所组成的各种图形,解题的主要突破口是“找规律”,即找到行与列的关系;第二个关键点就是学会用循环打空格,使得图形美观。

二、经典题型

1.七层菱形图

本题要求打印一个层数为7的菱形图,第一行1列,第二行3列,第三行5列,第四行7列,第五行5列,第六行3列,第七行1列。我的思路是分为两半来打印:先打1,2,3,4层的图形,再接着打5,6,7层。分别用两层循环i,j控制行与列。k的循环控制与调整打出空格的多少,使图形美观。

#include"stdio.h"
int main()
{
          
   
	int i,j,k;
	for(i=0;i<4;i++)//上半层打印 
	{
          
   
		for(k=0;k<17-i;k++)//k控制打空格 ,先循环递减打空格 
		   printf("  ");//每次循环打出两个空格 
		for(j=0;j<2*i+1;j++)//观察发现,每一行的列数是2*i+1 
		   printf("* ");//每次打出一个*和一个空格 
		printf("
");//内循环结束,即每行打印结束换行 
	}
	for(i=2;i>=0;i--)//下半层打印 
	{
          
   
		for(k=0;k<17-i;k++)//逐级递增打空格 
		   printf("  ");
		for(j=0;j<2*i+1;j++)
		   printf("* ");
		printf("
");
	}
	printf("图形打印完毕!
");
	return 0;
} 


![调试结果](https://img-blog.img.cn/20210118125336143.png)

2.打印n层菱形图

解题思路同上,根据上例打印7层菱形这一特例,从中发现一般规律,总结层数为n的代码更具一般性。体现了由特殊到一般的思想。

经验分享 程序员 微信小程序 职场和发展