2014-12-04 4 views
0
double find_min(sample &s){ 
    double i = 0; 
    double min; 
    for (i; i < s.get_data().size() - 1; i++){ 
     if (s.get_data().at(i) < s.get_data().at(i + 1)){ 
      min = s.get_data().at(i); 
     } 
     else{ 
      min = s.get_data().at(i + 1); 
     } 
    } 
    return min; 
} 

사용자 입력으로 채워진 벡터의 최소값을 찾으려고합니다. 작은 숫자, x 및 다른 모든 숫자가 x보다 큰 경우; 함수가 잘 작동합니다.사용자 입력으로 채워지는 벡터의 최소값 검색에 도움이 필요함

그러나 x보다 작은 숫자는 y를 호출 할 수 있으며 x 다음에 나오는 함수는 y를 반환합니다.

예제 1 : [23,44,55,1,66,77] -> function의 벡터 값은 정확하게 1을 반환합니다.

예 2 : [23,44,55,1,3,44] -> 함수의 벡터 값은 3을 반환합니까?

+0

인덱스에 대한 정수형을 사용하여 배열처럼 바람직 size_t로 소자를 얻을/설정 의 크기(). –

답변

1

최소와 수를 비교해야합니다. 다음 숫자보다 작은 마지막 숫자를 찾고 있습니다. 3 < 44.

+0

아 감사합니다 이제 작동합니다! –

+0

@RIfRahman, 답을 원한다면 주저없이 답변을 투표하십시오 (상호 이해) – nishparadox

+0

투표를 시도했지만 분명히 대표 15 명이되어야합니까? –

0

Kenny가 말했듯이, 당신은 min과 비교해야합니다. 다음과 같이 표시됩니다.

double find_min(sample &s){ 
    double i = 0; 
    int min_index = 0; 
    for (i; i < s.get_data().size() - 1; i++){ 
    if (s.get_data().at(i) < s.get_data().at(min_index)){ 
     min_index = i; 
    } 
    } 
    return s.get_data().at(min_index); 
} 
0

첫 번째 요소가 최소이고 두 번째 요소와 비교를 시작한다고 가정합니다. 다른 요소가 이전에 설정된 요소 (처음에는 첫 번째 요소)보다 작 으면이 요소를 새 요소로 설정하십시오. 그 반환 값과 일치하므로

double find_min(sample &s) 
{ 
    double min = s.get_data().at(0); 

    for (int i=1; i < s.get_data().size() - 1; i++) 
    { 
    if (s.get_data().at(i) < min) 
    { 
     min = s.get_data().at(i); 
    } 
    } 
    return min; 
} 

및 덧붙여서

, 인덱스 연산자 과부하 수 '[]'바로