2016-02-24 4 views
0

Это последняя часть моих спецификаций присваивания, что я не могу понять:Вывод инструкции по умолчанию?

использует случай по умолчанию для «поймать» большой диапазон оценок. Не указывайте каждое число от 0 до 59 как отдельный случай!

Это мой код, и по умолчанию мне необходимо учитывать значения между 0 и 59, используя приведенные выше инструкции.

Спасибо за любую помощь/предложения.

double percentage; 
int grade; 

cout << "Enter your grade percentage " <<endl; 
cin >> percentage; 

if (percentage < 0 || percentage > 100) 
    cout << "Invalid entry " << endl; 

grade = (int)round(percentage); 

cout << fixed << setprecision(2); 

switch(grade) 

{ 
    case 100: 
    case 99: 
    case 98: 
    case 97: 
    case 96: 
    case 95: 
    case 94: 
    case 93: 
    case 92: 
    case 91: 
    case 90: 
     cout << "Percentage: " << percentage << "% " << "Grade: A " << "Points: 4.00"; 
     break; 
    case 89: 
    case 88: 
    case 87: 
    case 86: 
    case 85: 
    case 84: 
    case 83: 
    case 82: 
    case 81: 
    case 80: 
     cout << "Percentage: " << percentage << "% " << "Grade: B " << "Points: 3.00"; 
     break; 
    case 79: 
    case 78: 
    case 77: 
    case 76: 
    case 75: 
    case 74: 
    case 73: 
    case 72: 
    case 71: 
    case 70: 
     cout << "Percentage: " << percentage << "% " << "Grade: C " << "Points: 2.00"; 
     break; 
    case 69: 
    case 68: 
    case 67: 
    case 66: 
    case 65: 
    case 64: 
    case 63: 
    case 62: 
    case 61: 
    case 60: 
     cout << "Percentage: " << percentage << "% " << "Grade: D " << "Points: 1.00"; 
     break; 
    default: 
     cout << "Percentage: " << percentage << "% " << "Grade: F " << "Points: 0.00"; 
     break; 
} 
return 0; 

}

+0

Это на C++, очевидно, – eca

+0

Вы можете редактировать свои вопросы, перетаскивать их ... исправлять проблемы в форматировании или отвечать на запросы о разъяснении. * (Но не редактируйте, чтобы внести в новый вопрос ... спросите новый ...!) * Но что более важно, что вы не можете понять? Какой вклад вы даете, какой результат вы получаете, что смущает вас? – HostileFork

+0

Значит, значение по умолчанию должно работать нормально? –

ответ

1

Идя с комментарием @ DVIX в, если вы знаете, что классы будут находиться в диапазоне от 0 до 100 включительно, вы можете сократить свой код следующим образом:

switch(grade/10) { 

    case 10: 
    case 9: 
     ... Do something ... 
     break; 
    case 8: 
    case 7: 
     ... Do something else... 
     break 
    .... 

} 

и используйте по умолчанию в конце, сохраняя пару случаев.

Сказав это, if, вероятно, является идиоматическим способом справиться с этим в обычном режиме.

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