for(k=0;k<2*i-1;k++) 是什么意思啊
我来尝试解释你的这个问题吧,首先我们先观察一下代码
#include <stdio.h>
int main()
{
int i, j, k;
for(i=1; i<5; i++)
{
for(j=i;j<5;j++)
{
printf(" ");
}
for(k=0;k<2*i-1;k++)
{
printf("*");
}
printf("\n");
}
return 0;
}
我们发现 i 是控制输出换行的,k是控制输出*号的
然后我们看一下要求我们的代码实现的效果如下:
*
***
*****
*******
这时候我们观察一下“行数i”与“*号k”之间是不是存在函数关系
第一行,即i=1 时
*号为一个 即k=1
。。。i=2时
。。。k=3
。。。i=3时
。。。k=5
。。。i=4时
。。。k=7
这时候我们发现k总是比i的2倍少1,于是我们换成表达式即为;
k=2i-1
这时候当子循环的起始数值k定义为0,当父循环i的值为1时我们的子循环也能执行一次。这就是为什么子循环是
for(k=0;k<2*i-1;k++);
纯手打,望采纳!!!