用C语言打印一个菱形图案!

版权声明:[email protected] https://blog.csdn.net/qq_271334644/article/details/83028577

运行环境: win10  vs2013

在屏幕上输出以下图案:

拿到这种题目其实是比较容易的,简单的来说就是找规律!,这个菱形每一行是由多个空格和星号组成

第一行:6个空格,1个星号

第二行:5个空格,3个星号

第三行:4个空格,5个星号

以此类推,假设菱形的一半有N行,此时N为7,,那么第i行时:有n-i个空格,2*i-1个星号

   那么下半部分如何打印呢?其实我们可以把这个菱形分成3个部分 

代码部分如下:

      

      为了避免多次循环,采用多个函数来实现, 为了统一规范,函数定义开头大写,而对于变量名我们用下划线命名,也方便我们后期读取前期写的代码很容易区分函数和变量名

运行结果

#include<stdio.h>
#include<stdlib.h>
void PrintLine(int blank_count, int start_count){     
	int i = 0;
	for (; i < blank_count; i++){
		printf(" ");  //打印空格
	}
	for (i = 0; i < start_count; i++){
		printf("*");
	}
	printf("\n");
}
void  PrintLingxing(int n){
	//打印上半部分
	int i = 1;
	for (i = 1; i < n; i++){
		PrintLine(n - i, 2 * i - 1);  // 打印每一行的空格和每一行的星号
	}
	//打印中间部分
	PrintLine(0, 2 * n - 1);
	//打印下半部分
	for (i = n - 1; i>0; i--){
		PrintLine(n - i, 2 * i - 1);
	}
}
int main(){
	PrintLingxing(7);    //对半的行数
	system("pause");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_271334644/article/details/83028577