目标打印:
*
**
***
****
*****
源码如下:
#include <stdio.h>
int main()
{
int j,i;
for (i=1;i<=5;i++)
{
for (j=1;j<=5;j++)
{
if(i>=j)
printf("*");
else
printf("");
}
printf("\n");
}
return 0;
}
运行截图:
思路:
打印这个图形,通过循环实现,关键是理清循环嵌套的含义。
关于两重的for循环可以这样理解,i代表行,j代表列。
刚开始循环i=1 j=1 j=2 j=3 j=4 j=5
i=2 j=1 j=2 j=3 j=4 j=5
当i=1时j要循环五次
第一次循环时: i=1 j=1
if(1>=1)打印*号 i=1 j=2
if(1>=2)不成立 else 打印空
注意看条件 for (i=1;i<=5;i++)循环几次?
for(i=0;i<5;i++)和for (i=1;i<=5;i++)都是循环五次。
因为在C语言中数组的下标是从0开始的,因此一般也都会设置循环变量也从0开始
那个i++,j++在什么时候才累加?
for(int i=0;i<5;i++)
{
printf("a");
}
这个循环,当打印一个a后执行i++一次
也就是说每当循环体内语句执行完毕后执行一次
{
printf("a");
}
这个循环,当打印一个a后执行i++一次
for循环嵌套时
for(i=0;i<5;i++)
for(j=0;j<5;j++),
外面i=0循环一次,里面j=0-4循环五次
也就是说内循环完了之后外循环才会i++
for(i=0;i<5;i++)
for(j=0;j<5;j++),
外面i=0循环一次,里面j=0-4循环五次
当i=0时,j=0,j++
i=0时,j=1,j++
i=0 j=2,j++
i=0, j=3,j++
i=0, j=4,j++
i++
i=2 j=0,j++
i=2 j=1,j++
...
i=0时,j=1,j++
i=0 j=2,j++
i=0, j=3,j++
i=0, j=4,j++
i++
i=2 j=0,j++
i=2 j=1,j++
...