输出以上图形.
*
***
*****
*******
*****
***
*
实在想不出来了. 请教一下!
首先要计算出 *和空格的位置,然后就好做了 ;
通过两层循环便可以实现,外层控制行数,内层的两个循环分别控制*和空格便可。
#include<stdio.h>
#define N 4
void Print(int i)
{int m1,m2,m3;
for(m1=0;m1<N-i;m1++)
printf(" ");
for(m2=0;m2<2*i+1;m2++)
printf("*");
for(m3=0;m3<2*N-1;m3++)
printf(" ");
printf("\n");
}
void P(int m)
{int i,j;
for(i=0;i<m;i++)
Print(i);
for(j=m;j>=0;j--)
Print(j);
}
main()
{ P(N);
}
修改N值,可以得到不同大小的图形
先打印上面4行.
int i,j,k;
for(i=1;i<=4;i++) //打印的行数
{
for(j=1;j<=i;j++)//打印空格
printf(" ");
for(k=1;k=2*i-1;k++)//打印星号
printf("*");
printf("\n");
}
//下面三行
for(i=1;i<=3;i++)
{
for(j=1;j<=i;j++)
printf(" ");
for(k=1;k=7-2*i;k++)
printf("*");
printf("\n");
}
[此贴子已经被作者于2006-7-16 8:39:02编辑过]
main()
{
int i,j,k;
for(i=0;i<=3;i++)
{
for(j=0;j<=2-i;j++)
printf(" ");
for(k=0;k<=2*i;k++)
printf("*");
printf("\n");
}
for(i=0;i<=2;i++)
{
for(j=0;j<=i;j++)
printf(" ");
for(k=0;k<=4-2*i;k++)
printf("*");
printf("\n");
}
getch();
}