父循环:控制行数
子循环:1.输出空格;2.输出*;
对应关系:
第<1>行,<4>空格<1>*
第<2>行,<3>空格<3>*
第<3>行,<2>空格<5>*
......
4个空格1个*表示子循环中的第1个循环运行了4次,第2个循环运行了1次
类推......
只要控制两个子循环for里面的循环条件运行次数可以根据夫循环行数对应起来就实现了
#include <stdio.h> int main() { int i, j, k; for(i=1; i<5; i++) { /* 观察每行的空格数量,补全循环条件 */ for(j=5-i;j>=1;j-=1) { printf(" "); //输出空格 } /* 观察每行*号的数量,补全循环条件 */ for(k=1;k<=2*i-1;k++) { printf("*"); //每行输出的*号 } printf("\n"); //每次循环换行 } return 0; }
子循环——输出空格:
第1行 3个
第2行 2个
第3行 1个
第4行 0个
....
第i行 (4-i)个
#include <stdio.h>
int main()
{
int i, j, k;
for(i=1; i<5; i++)
{
/* 观察每行的空格数量,补全循环条件 */
for(j=0;j<4-i;j++)
{
printf(" "); //输出空格
}
/* 观察每行*号的数量,补全循环条件 */
for(k=0;k<2*i-1;k++)
{
printf("*"); //每行输出的*号
}
printf("\n"); //每次循环换行
}
return 0;
}