打印*菱形问题,好长,谁能帮精简一下,自己看得都晕眼
要求打印 ** * *
* * * * *
* * * * * * *
* * * * *
* * *
*
我的思路:2个独立循环,{(列i=1~4 ,j=1~4 图形上部前半部分)(列i=1~4 ,k=5~7 图形上部后半部分)}第一个循环
{(列i=5~6 ,j=1~4 图形下部前半部分)(列i=5~6,k=5~7 图形下部后半部分)}第二个循环
程序如下:
#include <stdio.h>
main()
{int i,j,k;
{for(i=4;i>=1;i--)
{
for(j=1;j<=4;j++){if(i-j>0)printf(" ");else printf("*");} /*上半部前段*/
for(k=5;k<=7;k++){if(i+k>8)printf(" ");else printf("*");} /*上半部后段*/
printf("\n");
}
} /*上半部分*/
{
for(i=5;i<=7;i++)
{
for(j=1;j<=4;j++){if(i-j>4)printf(" ");else printf("*");}
for(k=5;k<=7;k++){if(i+k>11)printf(" ");else printf("*");}
printf("\n") ;
}
}
}
太长、太笨有其他好法吗?