|
=================================
#include<stdio.h>
#include<stdlib.h>
void main()
{
int i,j,k;
for (i=0;i<4;i++) //输出上面4行*号
{
for (j=0;j<=2-i;j++) //输出*号前面的空格
printf(" ");
for (k=0;k<=2*i;k++) //输出一行的*号
printf("*");
printf("\n"); //每输出完一行*号后换行
}
for (i=0;i<3;i++) //输出下面3行*号
{
for (j=0;j<=i;j++) //输出*号前的空格
printf(" ");
for (k=0;k<=4-2*i;k++)
printf("*"); //输出一行的*号
printf("\n"); //每输出完一行*号后换行
}
system("pause"); //程序执行到此时暂停
//按任意键继续
}
//end of main
分析如下:可发现,前四行*号前的空格为3,2,1,0, 故j 与行数i 的关系式为j=2-i (因为i,j的初值均为0,当i=0;时,j=2,则从0数到2 共有3个数,即有3个空格),而*号的个数=2*i+1;故 k=2*i,(因为k的初值为0)下面三行也是一样的道理,不同的是*号前的空格随i 的增加而增加,有j=i(i,j的初值均为0),*号的个数随i的增加而减少,有k=4-2*i(i,k的初值均为0)
|