2014-11-05 4 views
-11

Я пытаюсь написать функцию, которая запрашивает у пользователя оценки от судей (5). После того, как результаты получены функцией, я пытаюсь найти самое высокое значение из этих 5 баллов в другой функции. Ive посмотрел в моем учебнике и искал в Интернете по возможным причинам, мой код перепутался, но безрезультатно. Его нелегко применить к вашему коду чужую ситуацию. Но в настоящее время моя двойная функция (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. Не спрашивайте здесь. Это разумная стратегия решения проблем, когда вы собираетесь включать вопрос в SO. Ahh и 5th: ** Не пропустите, прежде всего, изучите свой учебник! **. –

+5

В этом коде есть так много ошибок: но общая строка такова: Highest = Highest; Разве вы не должны использовать функцию findHighest где-нибудь? – user38034

ответ

8

Ваш findHighest() функция выглядит нормально (вроде), но вы просто не называть его:

Highest = Highest; 

Вместо назначать Highest себе, что может BTW быть любое значение.

Вы можете найти это самостоятельно, если отлаживаете свою программу.

+1

«Вы можете найти это сами, если отлаживаете свою программу». Я думаю, что шаги в школе: 1) научиться программировать. 2) научиться отлаживать. +1, потому что вы ответили вместо того, чтобы открывать вопрос о мета, чтобы увидеть, следует ли сразу удалить вопрос. –

+2

Я также даю +1, потому что мне нравятся люди, которые пытаются ответить на безответные ответы очень низкого качества. Тем не менее, я должен указать, что я ударил по стене определенное время с таким (моим) отношением. Кажется, что большинство самых популярных пользователей здесь думают, что ответы на вопросы VLQ - это не очень хорошая идея. Вы должны (по их мнению) downvote и флаг закрываться, а затем тратить свое время на ответы на более качественные вопросы. – trejder

Смежные вопросы