C # выводит буквенную оценку из диапазона с использованием двойных - PullRequest
0 голосов
/ 27 ноября 2018

Похоже, мой учитель хочет, чтобы класс использовал double для решения этой проблемы.Я с трудом заставляю его брать.Я уверен, что мне чего-то не хватает, но я хочу посмотреть, что думают другие.

public char Test4(double grade)

    {
        // TODO: Write code here to compute an answer.
        //       Return the answer from this function.
        //       Read the lab document for detailed instructions.
    }

Я пытался использовать операторы if else и безуспешно.Я не уверен, как использовать двойной для этого.Пожалуйста, помогите.

Спасибо.

Вот пример того, что я пробовал.

if (grade >= 90 && grade <= 100)
        { 
            public char = 'A'
        }
        else if (grade >=80 && grade <90)
            {
            public char = 'B'
                        }
        return public char;
{

Вывод: Here is my output

Я это уже очистил.Надеюсь, это поможет прояснить вопрос.

    public char Test4(double grade)
    {
        // TODO: Write code here to compute an answer.
        //       Return the answer from this function.
        //       Read the lab document for detailed instructions.
        if (grade >= 90.0)
        { return 'A'; }
        else
            if (grade >= 80.0)
        { return 'B'; }
        else
            if (grade >= 73.0)
        { return 'C'; }
        else 
            if (grade >=70.0)
        { return 'D'; }
        else
            if (grade >= 0)
        { return 'F'; }
        else
            if (grade <0 )
        { return '?'; }
        else
            if (grade > 100)
        { return '?'; }
    }

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Я не думаю, что вы компилируете с Test4 как написано и работаете, и старая, не реализованная версия Test4 (следовательно, безрезультатно).У вас есть ошибка, которую я предполагаю: «Не все пути кода возвращают значение».Чтобы решить эту проблему, в конце нужно «поймать все» - вам не нужно проверять, является ли grade <0 И >100, просто верните ?.

...
else if(grade >= 0)
{
    return 'F';
}
// if none of the if statements were hit, you have an incorrect grade value
return '?';

Это должно правильно скомпилировать Test4 (обратите внимание, у вас есть ошибка с Test5, которая также должна быть исправлена) и дать вам правильные результаты.

0 голосов
/ 27 ноября 2018

Вы возвращаете "public char", вам нужно либо вернуть его на место, либо сохранить значение в переменной.

пример 1

if (grade >= 90)
{
    return 'A';
}
else if ....
{
    //copy for each letter grade above F
}
else 
{
    return 'F';
}

пример 2

char gradeLetter = 'F';
if (grade >= 90)
{
    gradeLetter = 'A';
}
else if ....
{
    //copy for each letter grade above F
}

return gradeLetter;
...