如何用C语言打印菱形?

如题所述

第1个回答  2020-01-28
#include
void
main()
{
int
n,m,i,j,s1,s2,s3,s4;
printf("请输入外菱形与内菱形高度\n");
printf("n=");
scanf("%d",&n);
printf("m=");
scanf("%d",&m);
if(((n%2==0||m%2==0)&&n!=0&&m!=0)||m>=n||n<=0||m<0)
return;
if(n!=0&&m==0)
{m=n/2+1;
for(i=1;i<=m;i++)
{
for(j=1;j<=m-i;j++)
printf("
");
for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
}
m--;
for(i=1;i<=m;i++)
{
for(j=1;j<=i;j++)
printf("
");
for(j=1;j<=2*(m-i)+1;j++)
printf("*");
printf("\n");
}
}
else
{s1=(n-m)/2;
s2=(m+1)/2;
s3=(m-1)/2;
for(i=1;i<=s1;i++)
{
for(j=1;j<=(n+1)/2-i;j++)
printf("
");
for(j=1;j<=i*2-1;j++)
printf("*");
printf("\n");
}
for(i=1;i<=s2;i++)
{
for(j=1;j<=s2-i;j++)
printf("
");
for(j=1;j<=s1;j++)
printf("*");
for(j=1;j<=i*2-1;j++)
printf("
");
for(j=1;j<=s1;j++)
printf("*");
printf("\n");
}
for(i=1;i<=s3;i++)
{
for(j=1;j<=i;j++)
printf("
");
for(j=1;j<=s1;j++)
printf("*");
for(j=1;j<=(s3-i)*2+1;j++)
printf("
");
for(j=1;j<=s1;j++)
printf("*");
printf("\n");
}
for(i=1;i<=s1;i++)
{
for(j=1;j<=n/2-s1+i;j++)
printf("
");
for(j=1;j<=(s1-i)*2+1;j++)
printf("*");
printf("\n");
}
}
getch();
}
相似回答