2016-02-17 1 views
0

Итак, я пишу программу, в которой мы принимаем ввод на общее количество лестниц и количество шагов за один раз. Так, например.C программа для ступеней и лестниц

Позволяет сказать

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); 
    } 
} 

Вместо того, чтобы указывать только код. Может ли кто-нибудь помочь мне с логикой? Большое спасибо.

+2

использования 'для (J = я, J <я + шаг; j ++) 'вместо' for (j = 1; j <= step; j ++) ', поскольку j должен начинаться со значения i, и он должен работать до текущего значения, т.е. + числа шага. но сначала для цикла вам нужно выполнить до < Himanshu

+4

Какую ошибку/вывод вы получаете? – SKD

ответ

1
#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 ... в EvReY ряду

Поскольку каждая строка начинается с +1 стартового ряда, это значение i.
поэтому мы начнем j=i в каждом цикле, как я буду работать 0,1,2,3 ...

А затем нам нужно запустить ДО значением шага, поэтому мы будем писать j<i+step
так что WIIL запустить до текущего значения i + количество шагов.
для i = 0;
шаг = 3

for(j=i;j<i+step;j++) 

J = 0 начальное значение J < 0 + 3 означает цикл будет выполняться от 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 
... 
.. 
.. 
+0

Спасибо, много работало :) :) :) – asparkhour

+0

@noobercoder, ваш прием :) – Himanshu

-1

Не уверен, что вы на самом деле означает, но если вы хотите идти вверх по лестнице с числом шагов, то вам необходимо изменить значение шага в вашей цикл:

for(j=1;j<=step;j+=step) 
+0

Представьте, что вы тренируетесь. Итак, каждые 4 шага, которые вы поднимаете, скажите S1-S4 из S10, вы возвращаетесь к S1 + 1 i.e S2. И S2 вы поднимаетесь на 4 шага. i.e S2 - S3 - S4 -S5, то вы вернетесь на S2 + 1 i.e S3 и снова заберите 4 шага и так далее, пока не достигнете S10 – asparkhour

Смежные вопросы