因此,我正在编写一个程序,在这个程序中,我们输入楼梯的总数和一步一步的步数。举个例子。
让我们说
stairs=10;
steps=3;所以从零开始。它走了。0-1-2然后回到1,1-2-3,2-3-4,3-4-5,4-5-6等等,直到8-9-10。
我为它写了代码。但有些东西不见了。下面是:
#include<stdio.h>
int main()
{
int i,j,stair,step;
stair=10;
step=3;
for(i=0;i<=stair;i++)
{
for(j=1;j<=step;j++)
{
printf("\nJ:::%d",j);
}
printf("\tI:::%d",i);
}
}而不是只给出代码。谁能帮我弄清楚逻辑吗?提前谢谢。
发布于 2016-02-17 11:31:26
#include<stdio.h>
int main()
{
int i,j,stair,step;
stair=10;
step=3;
for(i=0;i<=stair-step+1;i++)// here we are decreasing step bcz we are ruuning loop for extra steps in next for loop
{
for(j=i;j<i+step;j++)
{
printf("\nJ:::%d",j);
}
printf("\tI:::%d",i);
}
return 0;
}就像我们现在的模式一样。
0-1-2
1-2-3
2-3-4
3-4-5
这是一个普通的级数0,1,2,3.列队
因为每一行都以+1开头,所以上一行的值为i。
所以我们将在每个循环中启动j=i,因为我将运行0,1,2,3.
接下来,我们需要运行到step的值,所以我们将编写j<i+step
这样它就能运行到I+步骤数的当前值。
对于假设i=0;
step=3
for(j=i;j<i+step;j++)j=0初始值j<0+3 means循环将从0运行到2。
i=1 =>loop will run from j=1 to j<1+3 Output 1,2,3
i=2 =>loop will run from j=2 to j<2+3 Output 2,3,4
i=3 =>loop will run from j=3 to j<3+3 Output 3,4,5
...
..
..发布于 2016-02-17 11:26:59
不确定您的实际意思是什么,但是如果您想要用步骤数上楼,那么您需要更改for循环中的增量值:
for(j=1;j<=step;j+=step)https://stackoverflow.com/questions/35455154
复制相似问题