从数组中分配等级

时间:2015-12-01 01:54:12

标签: c++ arrays

我需要编写一个程序来读取学生的分数,获得最高分,然后根据以下方案分配成绩:

1)如果分数> =最佳 - 10

,则等级为A.

2)如果得分≥> = 20,则成绩为B;

3)如果得分> = = 30,则等级为C;

4)如果得分> =最好 - 40,等级为D;

5)否则等级为F.

程序提示用户输入学生总数,然后提示用户输入所有分数,并通过显示成绩来结束。我的问题来自于从数组中提取等级,这是我到目前为止所做的:

 #include <iostream>
#include <string>

using namespace std;

int studentGrade(int* gradeArray, int numberStudents)
{
    int grade = 0;
    int score, best;
    for (int i = 0; i < numberStudents; i++)
    {
        grade += gradeArray[i];
    }

    return (grade);
}
int main()
{
    int numberStudents;
    cout << "Enter the number of students: ";
    cin >> numberStudents;

    int* gradeArray = new int[numberStudents];

    for (int i = 0; i < numberStudents; i++)
    {
        int score;
        cout << "Enter the students Score: ";
        cin >> score;

        gradeArray[i] = score;
        cout << gradeArray[i];
    }


}

1 个答案:

答案 0 :(得分:0)

当您编写 main()以外的函数时,您必须从main或其他函数调用它来执行它。 您的代码中没有任何地方可以调用您的

int studentGrade(int* gradeArray, int numberStudents){}

如果你想执行 studentGrade 函数,你应该使用适当的参数调用它,调用应该来自main -

studentGrade(gradeArray,numberStudents);

由于您的studentGrade函数将返回一个int值,您可以像这样调用它;

int finalGrade=studentGrade(gradeArray,numberStudents);

并打印studentGrade返回的值:

std::cout<<finalGrade<<std::endl;

当你以这种方式调用函数时,你的代码将简单地总结数组gardeArray中的所有数据并返回它。所以剩下的数学你可以自己做。

由于您已将内存分配给新的数组,因此您应该在程序的最后以下列方式删除

delete []gradeArray;

此外,您的main函数返回一个int,因为您声明了它

int main ()

所以在代码的最后你应该有

 return 0;

所以在你的for循环之后将它添加到你的主 -

 int finalGrade =studentGrade(gradeArray,numberStudents);
 std::cout<<finalGrade<<std::endl;
 delete []gradeArray;
 return 0;

现在你可以继续前进了,Goodluck:)

相关问题