我需要编写一个程序来读取学生的分数,获得最高分,然后根据以下方案分配成绩:
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];
}
}
答案 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:)