Я работаю над заданием для моего введения в класс программирования, который предназначен для выполнения операций над массивом оценок. Вот подробности:
Используя следующие параллельные массивы:
const int NUM_GRADES =5;
string Students[NUM_STUDENTS] = {"Tom","Jane","Jo"};
int grades[NUM_STUDENTS][NUM_GRADES] ={{78,98,88,99,77},
{62,99,94,85,93},
{73,82,88,85,78}};
Напишите функцию с именем displayNumStudentsAtLeastBForSelectedAssignment, которая принимает в качестве параметров массивы ученика и класса, позволяет пользователю выбрать правильное назначение инаходит и отображает номер учащегося, у которого по крайней мере оценка> = 80 для этого задания, в формате, указанном в примере ниже.
Вот код, который я написал для этой функции. Мне интересно, имеет ли смысл моя логика, поскольку я работал над этим всю ночь и только что нашел потенциал решение
//Displays the number of students with at least a B (>=80)
int DisplayNumStudentsAtLeastBForSelectedAssignment(string Students[NUM_STUDENTS], int grades[NUM_STUDENTS][NUM_GRADES])
{
std::cout << "Number of students with atleast a B: " << endl;
std::cout << "Please enter in an assignment number: ";
int assignmentNum;
std::cin >> assignmentNum;
getValidAssignmentNumber(assignmentNum);
int total =0;
for (int x = 0; x < NUM_STUDENTS; x++)
{
if (grades[x][assignmentNum-1]>= 80)
total = total + 1;
}
std::cout << "Number of students with at least B on assignment " << assignmentNum << ": " << total << endl;
}
Функция, кажется, работает правильно. Просто любопытно, есть ли более эффективный способ сделать это. Заранее всем спасибо за помощь.