2011-07-18 3 views
0

Helo, 불완전하게 중첩 된 루프의 경우 내부 루프의 정의에 대해 다소 혼란 스럽습니다. 이 코드를 고려하십시오불완전하게 중첩 된 루프의 가장 안쪽 루프는 무엇입니까?

for (i = 0; i < n; ++i) 
{ 
    for (j = 0; j <= i - 1; ++j) 
     /*some statement*/ 
    p[i] = 1.0/sqrt (x); 
    for (j = i + 1; j < n; ++j) 
    { 
     x = a[i][j]; 
     for (k = 0; k <= i - 1; ++k) 
      /*some statement*/ 
     a[j][i] = x * p[i]; 
    } 
} 

여기에 동일한 중첩 수준에 두 개의 루프가 있습니다. 그러나 j + 1에서 시작하여 "j"를 반복하는 두 번째 루프에는 또 다른 중첩 수준이 있습니다. 전체 루프 구조를 고려하면 코드에서 내부 루프가 가장 큽니까?

+1

이것은 mayhap 숙제인가? 나는 왜 당신이 묻는 지 궁금하다. –

+0

숙제에 문제가 있습니까? 왜 가장 안쪽 루프인지 알아야합니까? 중첩 수준에 대해 중재를하면서 자신의 질문에 답한 것 같습니다. – skyfoot

+0

나는 내 논문에 갇혀 있는데, 내가 몇 가지 루프를 모델링해야한다. 그리고 이번에는 완벽하게 중첩 된 루프를 보았다. – psteelk

답변

0

롤 나는 이것을 설명하는 법을 모른다. 그래서 나는 최선의 결과를 줄 것이다. debugger을 사용하는 것이 좋습니다! 그것은 너를 알지 못할 정도로 너를 도울지도 모른다.

for (i = 0; i < n; ++i) 
{ 
    //Goes in here first.. i = 0.. 
    for (j = 0; j <= i - 1; ++j) { 
     //Goes here second.. 
     //Goes inside here and gets stuck until j is greater then (i- 1) (right now i = 0) 
     //So (i-1) = -1 so it does this only once. 
     /*some statement*/ 
    p[i] = 1.0/sqrt (x); 
    } 
    for (j = i + 1; j < n; ++j) 
    { 
     //Goes sixth here.. etc.. .. 
     //when this is done.. goes to loop for (i = 0; i < n; ++i) 

     //Goes here third and gets stuck 
     //j = i which is 0 + 1.. so, j == 1 
     //keeps looping inside this loop until j is greater then n.. idk what is n.. 
     //Can stay here until it hits n.. which could be a while. 
     x = a[i][j]; 
     for (k = 0; k <= i - 1; ++k) { 
      //Goes in here fourth until k > (i-1).. i is still 0.. 
      //So (i-1) = -1 so it does this only once 
      /*some statement*/ 
     a[j][i] = x * p[i]; 
     } 
     //Goes here fifth.. which goes.... to this same loop! 
    } 
} 
2

j 루프는 내가 k는 가장 안쪽 루프라고 말하고 싶지만 k는 내부 대부분의 루프

0

이다 동등하게 i 안에 중첩되어 있기 때문에 당신은에서에 도달하는 데 필요한 루프의 수를 계산하는 경우 바깥쪽에는 3 개의 루프가 있으며 이것은 코드에서 네 개의 루프 중 가장 많은 것입니다.

관련 문제