使用阵列C 计算三个等级的平均值
Calculating the average of three grades using an array c++
我目前正在研究C 类的程序,该课程将在一个学期中处理并生成一个学期的学生成绩单,假设学生正在上五堂课。(输出打印到屏幕上图表格式)。学生将为每门课程输入三个年级。课程名称,第一考,二级考试成绩和第三考中应该有一个阵列。
好吧,足够公平。好吧,我设法在以下代码中将上述数组初始化并正确输出。这是我有点困惑的地方。接下来,我必须初始化一个数组,该数组将计算每个课程的三个考试成绩的平均值,并初始化每个课程的字母等级的数组。(并以与考试相同的方式将它们打印到屏幕上等级和课程名称。)也许如果有人可以阐明如何创建一个将计算三个等级的平均值的数组,我可以尝试弄清楚如何为字母等级制作数组。谢谢。
# include iostream
using namespace std;
const int SIZE =5;
void getData(string courseName[], float examOne[], float examTwo[], float examThree[]);
int main ()
{
// local declaration
string courseName[SIZE];
float examOne[SIZE];
float examTwo[SIZE];
float examThree[SIZE];
getData(courseName,examOne,examTwo,examThree);
cout<<"nnn";
for (int i = 0; i <SIZE; i++){
cout<< courseName[i]<<" "<<examOne[i]<<" "<<examTwo[i]<<" "<<examThree[i]<<" "<<total[i]<< endl;
}
return 0;
}
void getData(string courseName[],float examOne[],float examTwo[],float examThree[]){
for (int i = 0; i <SIZE; i++){
cout<<"Enter Course Name: ";
cin >> courseName[i];
cout<<"enter First Exam Grade: ";
cin>>examOne[i];
cout<<"enter Second Exam Grade: ";
cin>>examTwo[i];
cout<<"enter Third Exam Grade: ";
cin>>examThree[i];
}
}
编辑:
我添加了一个功能,以显示学生的平均成绩为字母。
using namespace std;
被认为是不良习惯,有时可能是危险的。检查一下。将SIZE
宣布为Globale变量也被认为是不良实践。
#include <iostream>
#include <string>
void getData(int sizeArray, std::string courseName[], float examOne[], float examTwo[], float examThree[], float average[]);
std::string letterGrade(int grade);
void highestLowestAverageByExam(float tExamArray[], int tSize, float & tHighestGradeExam, float & tLowestGradeExam, float & tAverageGradeExam);
int main()
{
// local declaration
const int SIZE = 5;
std::string courseName[SIZE];
float examOne[SIZE];
float examTwo[SIZE];
float examThree[SIZE];
float average[SIZE];
getData(SIZE, courseName, examOne, examTwo, examThree, average);
std::cout << "nnn";
for (int i = 0; i <SIZE; i++)
{
std::cout << courseName[i] << " " << examOne[i] << " " << examTwo[i] << " "
<< examThree[i] << " " << average[i] << " " << letterGrade(average[i]) << std::endl;
}
std::cout << "n";
float highestGradeExam = 0;
float lowestGradeExam = 0;
float averageGradeExam = 0;
highestLowestAverageByExam(examOne, SIZE, highestGradeExam, lowestGradeExam, averageGradeExam);
std::cout << "Exam number 1: Highest grade = " << highestGradeExam
<< " Lowest grade = " << lowestGradeExam
<< " Average grade = " << averageGradeExam << std::endl;
return 0;
}
void getData(int sizeArray, std::string courseName[], float examOne[], float examTwo[], float examThree[], float average[])
{
for (int i = 0; i < sizeArray; i++)
{
int count = 0;
std::cout << "Enter Course Name: ";
std::cin >> courseName[i];
std::cout << "enter First Exam Grade: ";
std::cin >> examOne[i];
count++;
std::cout << "enter Second Exam Grade: ";
std::cin >> examTwo[i];
count++;
std::cout << "enter Third Exam Grade: ";
std::cin >> examThree[i];
count++;
average[i] = (examOne[i] + examTwo[i] + examThree[i]) / count;
}
}
std::string letterGrade(int averageGrade)
{
if (averageGrade >= 0 && averageGrade <= 100)
{
const int NUMBER_CATEGORIES = 11;
const std::string GRADE_LETTER[] = { "F", "D", "D+", "C-", "C", "C+", "B-", "B", "B+", "A-", "A" };
const int LOWEST_GRADE_SCORE[] = { 0, 60, 67, 70, 73, 77, 80, 83, 87, 90, 93 };
int category = 0;
while (category < NUMBER_CATEGORIES && LOWEST_GRADE_SCORE[category] <= averageGrade)
{
category++;
}
return GRADE_LETTER[category - 1];
}
else
{
return "Average grade is not valid.";
}
}
void highestLowestAverageByExam(float tExamArray[], int tSize, float & tHighestGradeExam, float & tLowestGradeExam, float & tAverageGradeExam)
{
tHighestGradeExam = tExamArray[0];
tLowestGradeExam = tExamArray[0];
for (int i = 1; i < tSize; i++)
{
if (tExamArray[i] > tHighestGradeExam)
{
tHighestGradeExam = tExamArray[i];
}
if (tExamArray[i] < tLowestGradeExam)
{
tLowestGradeExam = tExamArray[i];
}
}
tAverageGradeExam = (tHighestGradeExam + tLowestGradeExam) / 2;
}
相关文章:
- 模板-模板参数推导:三个不同的编译器三种不同的行为
- 在 2D 向量中使用第三个 [ ] 有什么意义?
- 如何通过按下第三个窗口中的按钮,将QString从一个窗口获取到另一个窗口
- 如何知道n!是否可以表示为三个连续数字的乘法?
- 我有三个 getline,但是一旦编译,输入就太多了
- 我遇到了黑客排名中的问题"TWO STRINGS"的三个测试用例的分段错误。原因是什么?
- 有没有更好的方法对C++中的三个整数进行排序?
- 如何检查第三个 API 是否在 Linux 中为 c/c++ 程序创建了一个新线程?
- 为什么 getch 在按下函数或箭头键时返回三个值?
- 使用三个数字比较器进行排序
- 我想在C++代码中比较这三个术语
- 我的动态链接队列在同一输出流中调用时不正确地输出三个返回函数
- 我该如何编码,使计算机知道两个名称条目和三个名称条目之间的区别
- 为什么我需要三个嵌套的大括号来调用赋值运算符,将const引用到二维数组
- 如何通过通用引用或std::forward将这三个c++模板函数合并为一个
- 五个中三个最大参数的平均值,不使用排序算法或向量/数组
- 如何使用不同的功能计算三个数字的总和,平均值和产物
- 使用阵列C 计算三个等级的平均值
- 编译三个文件以创建一个用于平均值的程序(取消注释?)
- 将军事时间转换为标准格式(HH:MM)并以标准格式计算平均值.三个问题