2014-11-05 5 views
-11

사용자에게 Judges (5)의 점수를 묻는 함수를 작성하려고합니다. 점수가 함수에 의해 검색된 후에 다른 함수에서 5 개의 점수 중에서 가장 높은 값을 찾으려고합니다. 필자는 필자의 교과서를보고 인터넷에서 코드가 엉망이지만 가능한 정보가없는 이유를 찾아 보았습니다. 다른 사람의 상황을 코드에 적용하기가 쉽지 않습니다. 하지만 현재 내 이중 함수 (findHighest)는 콘솔에 표시 될 때만 0을 반환합니다. 내 findHighest 함수가 0 만 반환하는 이유에 대한 통찰력? 감사합니다이중 함수 반환 0

#include <iostream> 
using namespace std; 

//Prototypes 
void getJudgeData(double& Judge, int i); 
double findLowest(double, double, double, double, double); 
double findHighest(double, double, double, double, double); 

int main() 
{ 
    double Highest, Lowest, Judge, Judge1, Judge2, Judge3, Judge4, Judge5; 
    int i=1; 
    while (i <= 5) 
    { 
     getJudgeData(Judge, i); 
     if (i == 1) 
      Judge1 = Judge; 
     if (i == 2) 
      Judge2 = Judge; 
     if (i == 3) 
      Judge3 = Judge; 
     if (i == 4) 
      Judge4 = Judge; 
     if (i == 5) 
     { 
      Judge5 = Judge; 
     } 
     i++; 
    } 
    Highest = Highest; 
    cout << "Raw Scores: " << Judge1 << " " << Judge2 << " " << Judge3 << " " << Judge4 << " " << Judge5 << endl; 
    cout << "Lowest Score Dropped: " << Lowest << endl; 
    cout << "Highest Score Dropped: " << Highest << endl; 
    system("pause"); 
    return 0; 
} 


void getJudgeData(double& Judge, int i) 
{ 

    cout << "Judge " << i << " Score: "; 
    cin >> Judge; 
    if (Judge < 0 || Judge > 10) 
    { 
     cout << "***Invalid Score***" << endl; 
     i--; 
    } 
} 

double findHighest(double& Judge1, double& Judge2, double& Judge3, double& Judge4, double& Judge5) 
{ 
    double Highest= Judge1; 
    if (Judge2 > Highest) 
     Highest = Judge2; 
    if (Judge3 > Highest) 
     Highest = Judge3; 
    if (Judge4 > Highest) 
     Highest = Judge4; 
    if (Judge5 > Highest) 
     Highest = Judge5; 

    return (double)Highest; 
} 
+1

스택 오버플로에 오신 것을 환영합니다! 이것은 매우 광범위한 질문입니다. "내 데이터베이스에 테이블을 삽입하는 방법"과 같은 특정 질문을 할 수 있습니다. 답을 얻는 것이 훨씬 더 쉬울 것입니다. –

+2

1. 더 구체적으로 말하십시오 (제목/_ "질문"_). 2. 먼저 디버거를 사용하십시오. 3. 디버거를 다시 사용하십시오. 4. 여기 묻지 마라. 솔직히 질문을 할 때 합리적인 문제 해결 전략입니다. 아, 그리고 5 일 : ** 교과서를 먼저 조사하는 것을 놓치지 마세요! **. –

+5

이 코드에는 많은 오류가 있습니다. 그러나 일반적인 행은 다음과 같습니다. Highest = Highest; 어딘가에 findHighest 함수를 사용해야하지 않습니까? – user38034

답변

8

귀하의 findHighest() 기능이 잘 보이는 (가지)하지만 당신은 그냥 전화를하지 :

Highest = Highest; 

이 대신 당신이 BTW 모든 값이 될 수있는 자체 Highest을 할당합니다.

프로그램을 디버깅 한 경우 직접 찾을 수 있습니다.

+1

"프로그램을 디버깅 한 경우 직접 찾을 수 있습니다." 학교에서 다음과 같은 단계가 있다고 생각합니다. 1) 프로그램을 배우십시오. 2) 디버깅을 배웁니다. +1 질문에 메타 질문을 여는 대신 답을했기 때문에 질문을 즉시 삭제해야하는지 확인하십시오. –

+2

나는 답을 제공하지 못하는 매우 낮은 품질의 답변을 사람들이 좋아하기 때문에 +1을 제공하고 있습니다. 그러나 나는 그러한 태도로 벽을 몇 번 쳤다는 것을 지적해야한다. VLQ 질문에 대답하는 것이 좋은 아이디어는 아니라고 생각합니다. 당신은 (그들의 의견으로는) downvote하고 플래그를 종료하고 더 나은 품질의 질문에 대답에 시간을 할애해야합니다. – trejder