C语言程序设计 | 打印一个n行的菱形

Posted 凌桓丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言程序设计 | 打印一个n行的菱形相关的知识,希望对你有一定的参考价值。


开始编写程序前,我们需要先找到菱形的规律。
1.菱形的行数k为奇数,除中间一行外上下对称,我们可以将中间行归到上半部分,上半部分行数为k=k/2+1,下半部分为k=k/2。
2.菱形每一行的*数量递增或递减两个。
3.空格数每一行递减(递增)一个,到中间行为0,可知空格数为 k-(+)当前行数
得出结论后即可开始编写代码
首先声明变量并让用户输入菱形的行数


int i,j,z,n,k;
printf("请输入菱形的行数:\\n"); 
scanf("%d",&k); 
k = k / 2 +1; 

上半部分的菱形


for(i=1,n=1; i<= k; i++)

	n = 2*i-1;
	for(j=k-i; j>0; j--)
	
		printf(" ");
	
	for(z=0; z< n; z++)
	
		printf("*");
	
	printf("\\n");


当上半部分编写完成后,我们需要将星号的数量n减少2,因为我们将中间行也归到了上半部分中。
n-=2;


for(i=0; i<k-1; i++)

	for(j=0; j<i+1; j++)
	
		printf(" ");
	
	for(z=n-2*i; z>0; z--)
	
		printf("*");
	
	printf("\\n");


下半部分菱形


运行结果
完整代码:

#include<stdio.h>
int main()
	
	int i,j,z,n,k;
	printf("请输入菱形的行数:\\n"); 
	scanf("%d",&k); 
	k = k / 2 +1; 
	for(i=1,n=1; i<= k; i++)
	
		n = 2*i-1;
		for(j=k-i; j>0; j--)
		
			printf(" ");
		
		for(z=0; z< n; z++)
		
			printf("*");
		
		printf("\\n");
	
	n-=2;
	for(i=0; i<k-1; i++)
	
		for(j=0; j<i+1; j++)
		
			printf(" ");
		
		for(z=n-2*i; z>0; z--)
		
			printf("*");
		
		printf("\\n");
	
	return 0;
 

以上是关于C语言程序设计 | 打印一个n行的菱形的主要内容,如果未能解决你的问题,请参考以下文章

求用C语言打印出1 123 12345 1234567 123456789这样的等腰三角形的程序是啥

学习C/C++必须会的一些编程题目!!!

C语言打印图中两点之间的所有路径,不是最短路径!!!谢谢高手麻烦帮忙 代码要实现哈!

python打印菱形

c语言打印菱形字母阵,麻烦真正的大婶来看看,用注释解释一下各行代码是什么意思,解释正确,我追加80财富

有关c语言的循环嵌套的问题