解决这类问题的思考方法:用循环控制输出行数,分析每行输出的符号个数与循环变量取值的对应关系,在每行还有前导空格个数需要考虑,每行的内容再用一个循环控制,循环次数采用前面总结出的关系公式,最后别忘了每行要输出一个换行。如此,程序设计步骤如下:
-总共输出5行:for ( i=0;i<5;i++ ),变量i的取值为:0,1,2,3,4
-每行星号前面没有前导空格,不处理
-每行输出星号个数:5,4,3,2,1,这个用i来算就是:5-i,for ( j=0;j<5-i;j++ )
那么程序就是:
int i,j;
for ( i=0;i<5;i++ ) //每一次循环实现输出一行
{
for ( j=0;j<5-i,j++ ) //每执行一次循环输出一个星号,循环次数就是星号个数
printf("*");
printf("\n");
}
#include "stdio.h"
void main(void){
int i;
for(i=5;i>0;i--)
printf("%*.*s\n",1,i,"******");
}
#include
main()
{
int i,k;
for (i=0;i<5;i++)
{
for (k=0;k<5-i;k++) printf("*");
printf("\n");
}
}
#include
int main(){
int i,j;
for(i=0;i<5;i++){
for(j=0;j<5-i;j++)
printf("*");
printf("\n");
}
}
#include
int main()
{
int i=5,j,k=5;
for(j=1;j<=i;j++)
{
for(k=6-j;k>=1;--k)
{
printf("*");
}
printf("\n");
}
return 0;
}