2013-04-19 1 views
0

대상 번호를 받아들이도록 설계된 for 루프가 있습니다. 데이터를 스택 [target]에 저장하면 해당 데이터가 반환됩니다.배열에서 배열의 위치가 아닌 배열의 위치 값을 반환하는 사용자 지정 스택의 "찾기"함수

불행히도 나는 배열의 위치를 ​​반환하거나 임의의 숫자로 된 문자열 (내 코드처럼 주기적으로)을 반환 할 수만 있습니다.

나는 단지 stackArray [counter]를 반환하려고했으나 마치 카운터를 반환하는 것처럼 동작합니다. 그런 다음 코드를 변경하여 새 변수를 만든 다음 해당 변수를 반환하고 다시 숫자 열로 돌아 왔습니다. 제 스택 배열이 포인터라는 사실과 관련이 있다고 생각합니까? 일종의 벽돌 벽에 충돌하면 모든 입력이 도움이됩니다.

여기 내 루프 (.에게 최신 버전은 적어도 나는 그것을 다양한 방법을 시도했습니다)입니다 :

for (int counter = 0; counter < target; counter++) 
    { 
     if (stackArray[counter] == target) 
     { 
      answer = stackArray[counter]; 

     } 
     cout << "beep " << counter << " " << target << endl; 

    } 
+0

이 코드는 실제로 의미가 없습니다. 'stackArray'의'target' 인덱스 항목을 원한다면 직접 접근 할 수 있습니다 (stackArray [target]). 값'target'을 포함하는 배열의 인덱스를 찾고 싶다면, 루프는 배열의 끝까지'target'이 아니라,'answer'가'counter'로 설정되어야합니다. 'stackArray [counter]'. –

+0

와우, 갑자기 이걸 액세스하기 위해 루프를 필요로하지 않는다는 것을 알았습니다. 내 생각에 여전히 연결 목록을 다소 모호하게 생각하고 있습니다. 나는 지금 내 연구실이 실제로해야 할 일에 대해 혼란 스럽다. 만약 내가해야만하는 것이 return (stackArray [target])이라면 실험실조차도 같지 않다. 나는 너무 복잡해 졌다고 생각한다. . 감사. 다시 편집하십시오. 내가 뭘 해야하는지 그 반전 이후 스택은 처음부터 마지막으로, 나는 지금 내가 그것을 얻을 것 같아요 – user2271589

답변

2

for 루프에서 일치하는 값을 반환하는 것은 간단하다. if 블록 안에 return 문을 추가하기 만하면됩니다.

for (int counter = 0; counter < target; counter++) 
{ 
    if (stackArray[counter] == target) 
    { 
     answer = stackArray[counter]; 

     return answer; // <--- 
    } 
} 

이 이미 answer 당신이 target로 검색하기 때문에 일 무슨 알고 있지만 거의 의미가 있습니다. 응답이 이미 알려져 있고 stackArray[target]으로 직접 액세스 할 수 있다는 것을 의미하는 target까지 반복 할 때 for 루프가 올바르지 않은 것처럼 보입니다. 이 검색을 수행 할 때 배열의 끝까지 검색하려고합니다.

+0

불명 한 것에 대해 유감스럽게 생각하지만, 그 cout 문장은 내가 카운터와 타겟으로 끝까지 가지고있다. 그게 루프가 무엇을하고 있는지를 테스트하는 것이 었습니다. 내가하려고하는 것은 return 문에서 for 문이 true 일 때 return 값을 반환하는 것입니다. – user2271589

+2

'return answer; ' –

+0

죄송합니다, 저는이 사이트를 처음 접해 보았습니다. 귀하가 업데이트 한 내용이 있지만 혼란 스럽습니다. 당신은 내 코드를 인용했지만, 당신이 변경 한 유일한 것은 cout 문장입니다. 그 cout 문은 불필요합니다. 어떻게 그것을 출력하려고 오전 주 프로그램에 retuning 것입니다. 이 모든 함수는 응답을 반환하고, 스택 [대상]에있는 데이터에 응답하므로 불행히도 cout staement가 아무 것도 변경하지 않는다면 데이터가 반환되지 않는 이유를 알 수 없습니다. – user2271589