так что у меня проблемы с выяснением, в чем моя проблема с ним
вывод должен быть что-то вроде
«Результат 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;
}
Прежде всего, вы используете switch
неправильно: grade
не является действительным селектором, он даже не инициализирован. Перепишите блок, используя только if-else
,
Второе: в функции вы должны return grade;
не cout
Это. В этом весь смысл: функция вычисляет какое-то значение, и вызывающая функция решает, что с ней делать (распечатать или сохранить ее или что-то еще).
Попробуй это
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
,