【发布时间】:2015-12-03 12:28:30
【问题描述】:
我需要编写一个程序来读取学生的分数,得到最好的分数,然后根据以下方案分配成绩:
1) 如果分数 >= best - 10,则成绩为 A
2) 如果分数 >= best - 20,则等级为 B;
3) 如果分数 >= best - 30,则等级为 C;
4) 如果分数 >= best - 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];
}
}
【问题讨论】:
-
你到底在坚持什么?请更具体。此外,您正在泄漏
gradeArray,因为您没有delete[]它。考虑改用std::vector。 -
输入错误的时候又会出现问题!输入在使用前应始终进行检查:
if (std::cin >> score) { ... } else { ... }.