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语言打印图中两点之间的所有路径,不是最短路径!!!谢谢高手麻烦帮忙 代码要实现哈!