Помогите с задачей на CodeWars
Помогите пожалуйста. У меня есть маленький опыт в программирование, и я изучаю c++. Я накопил достаточный опыт, чтобы решать задачи на CodeWars. И тут такая проблема, нужно написать функцию которое возвращает букву взаимности от чисел. Например, я ввел в функцию 90 95 93, тогда она возвращает A, или 54 57 51, тогда она возвращает F. Ну код я проверил. и он работает нормально. Но когда я вставляю код в Solution, и нажимаю кнопку Attempt, то он выдает Test Results: GradeBook. Что делать я не знаю. Вот эта задача: https://www.codewars.com/kata/55cbd4ba903825f7970000f5/train/cpp
using namespace std;
char getGrade(int a, int b, int c) {
if(a>=90 && b>90 && c<=100){
cout << "A";
}
else if(a>=80 && b>80 && c<=90){
cout << "B";
}
else if(a>=70 && b>70 && c<=80){
cout << "C";
}
else if(a>=60 && b>60 && c<=70){
cout << "D";
}
else if(a>=0 && b>0 && c<=60){
cout << "F";
}
}
Ответы (2 шт):
Читайте внимательней условие задачи
char getGrade(int a, int b, int c) {
// your code here
int val = (a + b + c) / 3;
if(val >= 90 && val <= 100 ) {
return 'A';
}
if(val >= 80 && val < 90) {
return 'B';
}
if(val >= 70 && val < 80) {
return 'C';
}
if(val >= 60 && val < 70) {
return 'D';
}
if(val >= 0 && val < 60) {
return 'F';
}
return '0';
}
Во-первых, нужно не выводить результат, а возвращать. Во-вторых, почему просто не найти среднее значение и не посмотреть входит ли оно в нужный диапазон?
char getGrade(int a, int b, int c) {
int avg = (a + b + c) / 3;
if(90 <= avg && avg <= 100) // 90 <= score <= 100
return 'A';
else if(80 <= avg && avg <= 90) // 80 <= score < 90
return 'B';
else if(70 <= avg && avg <= 80) // 70 <= score < 80
return 'C';
else if(60 <= avg && avg <= 70) // 60 <= score < 70
return 'D';
else if(0 <= avg && avg <= 60) // 0 <= score < 60
return 'F';
return 'F';
}