include<stdio.h>
int main()
{
int a,b,c,d,e,f;
for(a=1;a<=5;a++)
{
for(b=1;b<=5-a;b++)
printf(" ");
for(c=1;c<=(2a-1);c++)
printf("");
printf("\n");
}
for(d=1;d<=4;d++)
{
for(e=1;e<=d;e++)
printf(" ");
for(f=1;f<=9-2*d;f++)
printf("*");
printf("\n");
}
}
运行结果如图:
问题分析:可以把图案分成两个部分,既顶角向上的等腰三角形和顶角向下的等腰三角形。星星数为for(c=1;c<=(2*a-1)),行数为(a=1;a<=5;a++);空格为(b=1;b<=(5-a);b++)
重难点:主要是空格的排布问题
include<stdio.h>
int main()
{
int a,b,d,e;
for(a=1;a<=5;a++)
{
for(b=1;b<=(2a-1);b++)
printf("");
printf("\n");
}
for(d=1;d<=4;d++)
{
for(e=1;e<=(9-2d);e++)
printf("");
printf("\n");
}
}
程序运行结果如图:
问题分析:可以将图案分成两个部分,顶角向上的直角三角形和顶角向下的直角三角形;在顶角向上的直角三角形中,行数为5,星星为2a-1;
顶角向下的三角形中;行数为4;星星数为9-2d;
重难点:首先是行数的程序代码;然后确定星星的代码
include<stdio.h>
main()
{
int a,b,c,d,e,f;
for(a=1;a<=5;a++)
{
for(b=1;b<=(10-2a);b++)
printf(" ");
for(c=1;c<=(2a-1);c++)
printf("");
printf("\n");
}
for(d=1;d<=4;d++)
{
for(e=1;e<=2d;e++)
printf(" ");
for(f=1;f<=(9-2d);f++)
printf("");
printf("\n");
}
}
程序运行结果如图:
分析:此图类似与上一个图案;一样可以将图案分成两个部分,但需要插入空格代码,第一部分行数为a=5,空格数为,b=1,b<=(10-2a),b++,星星数为c=1,c<=(2a-1),c++
第二部分的行数为d=4;空格数为e=1,e<=2*d,e++
原文地址:https://www.cnblogs.com/lyf152977/p/10704661.html