2014-11-25 4 views
0

자, 매개 변수로이 함수에 전달되는 모든 숫자가 올바른 값을 반환합니다. 왜 이걸 실행 한 후에 표준 편차로 말도 안되는 숫자가 나오는지 파악할 수 없습니다. 즉 내가 얻은 숫자는 (4.23947e10)이거나 그 라인을 따르는 것이고, 디스플레이 기능은 모든 다른 라인을 건너 뜁니다.C++ 표준 편차 함수?

float stdDev(int arrayList [], int count, float average) 
    { 
     int deviation; 
     int sum2 = 0; 
     for (int i = 0; i <= count; i++) 
     { 
      sum2 += pow((arrayList[i] - average), 2); 

     } 

     deviation = sqrt(sum2/(count - 1)); 
     return deviation; 

    } 
void displayList(int heightlist [], int weightlist[], int count) 
//displays list of integers based on lists 
{ 

     cout << "\tHeight(s)" << " " << "Weight(s)" << endl; 
     for (int i = 0; i <= count; i++) 
     { 
      cout << "\t[" << heightlist[i] << "]" << " " << "["<< weightlist[i] <<"]" << '\n'; 
      i++; 
     } 
} 
+2

for (int i = 0; i <= count; i ++)는 의심스러워 보입니다. 배열은 '0'에서 'count - 1'까지 카운트되므로 대개 'for (int i = 0; i

+1

또한 편차는'int' 타입이어야합니다. 아마도'float'이어야합니다. –

답변

6

난 당신이 너무 멀리 한 것 같아요 :

for (int i = 0; i <= count; i++) 
//    ^^ 

아마 i < count을 의미했다. 또한

는 :

int deviation; 
int sum2 = 0; 

당신은 float deviation, sum2을 의미?

+0

무엇을 의미합니까? 편차와 sum2 변수를 float으로 바꿔야합니까? – user3236101

+0

@ user3236101 예. 이미 선언문에서 '실수'를 반환하겠다고 약속 했으므로 '편차'는 분명히 있어야합니다. 모든 중간 단계에서 정밀도를 잃는다면 최종 값은 매우 부정확 할 것입니다. – Barry

+0

표준 편차 문제가 수정되었습니다. 현재 가지고있는 문제는 배열에 설정된 표시 방법을 사용하여 출력을 표시하는 것입니다. – user3236101