c++怎么打印出一个菱形?

2024年11月15日 15:55
有1个网友回答
网友(1):

#include
void main()
{
int i,j,x,y,k,h,num;
char change;

for(;;)
{
printf("请依次输入菱形的行数、右移距离.注意行数一般为奇数,偶数自动加一行:\n");
scanf("%d%d",&num,&h);
printf("是否为空心粗告y or n:\t");
fflush(stdin);
scanf("%c",&change);
if(num+h>79||num<含凳哪=1||change!='y'&&change!='n')
printf("输入有误!![行数+右移距离不能大于79,只识别y/n]请重新输入!\n");
else break;
}
x=num/2+1;
y=num/2;
for(i=0;i<=x-1;i++)
{

for(j=1;j<=x-1-i+h;j++)
{
printf(" ");
}
if(change=='y')
{
printf("*");
for(k=3;k<=2*i+1;k++)
{
printf(" ");
}
if(i!=0)
printf("*\n");
else
printf("\n");
}
if(change=='n')
{
for(k=1;k<=2*i+1;k++)
{
printf("*");
}
printf("\n");
}
}
for(i=0;i<=y-1;i++)
{

for(j=0;j<=i+h;j++)
{
printf(" ");
}
if(change=='y')
{
printf("*");
for(k=3;k<=2*(y-1)+1-2*i;k++)
{
printf(" ");
}
if(i!=y-1)
printf("*\n");
else
printf("\n");
}
if(change=='n')
{
for(k=1;k<=2*(y-1)+1-2*i;k++)
{
printf("*");
}
printf("\n");
}
}

}
这是谈码我写的