首页 > 解决方案 > 此函数是否正确访问和分析数组?

问题描述

我正在为我的编程课程介绍做一项作业,该作业旨在对一系列成绩进行操作。以下是详细信息:

使用以下并行数组:

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

该功能似乎工作正常。只是好奇是否有更有效的方法。提前感谢大家的帮助。

标签: c++arraysfunctionmultidimensional-array

解决方案


推荐阅读