Беда с процедурой

так что у меня проблемы с выяснением, в чем моя проблема с ним
вывод должен быть что-то вроде
«Результат 1: 55,00 класс P»

Я новичок, поэтому любая помощь будет высоко оценена в это время борьбы, спасибо

for(int a=0;a< 10;a++)
{
cout << "Result " << a+1 << " " << score[a] << " " << determine_grade(score[a]) <<  "\n";
}
system("Pause");}char determine_grade(double a)
{
char grade;
switch(grade)
{
case(1):
if (a >100)
cout << "Invalid Input!";
case(2):
if (a >= 90)
grade = 'A';
break;
case(3):
if (a >= 70)
grade = 'B';
break;
case(4):
if (a >= 60)
grade = 'C';
break;
case(5):
if (a >= 50)
grade = 'P';
break;
default: grade = 'U';
}

cout << grade;
}

-1

Решение

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

Второе: в функции вы должны return grade;не cout Это. В этом весь смысл: функция вычисляет какое-то значение, и вызывающая функция решает, что с ней делать (распечатать или сохранить ее или что-то еще).

3

Другие решения

Попробуй это

char determine_grade(double a)
{
if (a > 100)
{
cout << "Invalid Input!";
return '?';
}
if (a >= 90)
return 'A';
if (a >= 70)
return 'B';
...
return 'U';
}

Понятия не имею, почему вы используете оператор switch.

Как написан ваш код determine_gradeЗадача состоит в том, чтобы вернуть значение, которое затем будет напечатано в вызывающем коде (то есть в цикле for). Так что используйте return в determine_grade не cout,

2

По вопросам рекламы [email protected]