狄克推多丶
2018-05-17 23:06
我的天啊,卡在这里几天了,怎么都想不明白,i,j,k分别代表的什么,为什么只要输出空格和“*”就会排好一个正三角的顺序了,又是怎么执行的子循环,父循环
一个最基本的规则:
外层循环控制行。
1:从上往下数有几行。
2:外层循环不参与运算。
内层循环控制列。
1:横向查数有几个标志(*)就是几列。
2:内存循环一周,外层循环一次。
比如:
for(int i=0;i<5;i++)
{
for(int j=0,j<5;j++);
}
这个循环共运行 5*5=25次。即(1*5)+(1*5)+(1*5)+(1*5)+(1*5)=25次;
i代表的是三角‘*’图的层数,j代表的是三角‘*’图的第i 层的空格数,k代表的是三角‘*’图的*号数
第一行由连续的四个空格加上一个*号组成,第二行由连续的三个空格加上连续的三个*号组成,,,(视觉欺骗,连续的*号后面其实什么都没有)
i代表行数
for(j=i;j<5;j++)循环执行的次数代表了该行的空格数量
for(k=0;k<2*i-1;k++)循环执行的次数代表了该行的*号数量
C语言入门
926207 学习 · 20797 问题
相似问题