Эта функция правильно обращается к массиву и анализирует его? - PullRequest
0 голосов
/ 23 октября 2019

Я работаю над заданием для моего введения в класс программирования, который предназначен для выполнения операций над массивом оценок. Вот подробности:

Используя следующие параллельные массивы:

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;
}

Функция, кажется, работает правильно. Просто любопытно, есть ли более эффективный способ сделать это. Заранее всем спасибо за помощь.

...