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()
一个完整的c语言程序{
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;
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。