用结构体写这个程序,求大神帮忙

有三个学生,每个学生的数据包括学号,姓名,三门课程的成绩,从键盘输入3个学生数据,要求输出三门课的评均成绩,以及最高平均分的学生的数据,包包括学号,姓名,三门课成绩,和平均成绩。
慕粉1139395306
浏览 977回答 1
1回答

习惯受伤

我就直接写了一段代码,解释全在注释里:#include <iostream> using namespace std; //学生总数 const int MaxStudentNo = 3; //结构体 struct Student { //学号 int no; //姓名 char name[20]; //第一门课成绩 double score1; //第二门课成绩 double score2; //第三门课成绩 double score3; }; //获取学生的成绩平均值 double getStudentAvgScore(Student* student) { return (student->score1 + student->score2 + student->score3) / 3; } //输出学生信息 void outputStudentInfo(Student* student) { cout << "------------------------------------" << endl; cout << "学号:" << student->no << endl; cout << "姓名:" << student->name << endl; cout << "成绩:" << student->score1 << "," << student->score2 << "," << student->score3 << endl; cout << "平均成绩:" << getStudentAvgScore(student) << endl; cout << "------------------------------------" << endl; } //从一些学生中获取平均成绩最高的学生 Student* getMaxAvgStudent(Student* students[]) { Student* retStudent = students[0]; double max = getStudentAvgScore(retStudent); for (int i = 1; i < MaxStudentNo; i++) { //如果这个学生没有初始化,则略过 if (!students[i]) { continue; } double score = getStudentAvgScore(students[i]); if (max < score) { max = score; retStudent = students[i]; } } return retStudent; } int main() { //初始化学生指针数组,并输入学生信息 Student* students[MaxStudentNo] = {0}; for (int i = 0; i < MaxStudentNo; i++) { cout << "请输入第" << i + 1 << "位学生的信息:" << endl; Student* s = new Student(); cout << "学号:" << endl; cin >> s->no; cout << "姓名:" << endl; cin >> s->name; cout << "第一门课成绩:" << endl; cin >> s->score1; cout << "第二门课成绩:" << endl; cin >> s->score2; cout << "第三门课成绩:" << endl; cin >> s->score3; students[i] = s; } //先输出所有学生的详细信息 cout << endl << MaxStudentNo << "位学生的详细信息:" << endl; for (int i = 0; i < MaxStudentNo; i++) { outputStudentInfo(students[i]); } //再输出平均成绩最高的学生 cout << endl << "平均成绩最高的学生信息:" << endl; Student* maxAvgScoreStudent = getMaxAvgStudent(students); outputStudentInfo(maxAvgScoreStudent); //清理资源,退出程序 delete maxAvgScoreStudent; delete[] students; return 0; }来一张效果图:
打开App,查看更多内容
随时随地看视频慕课网APP