我就直接寫了一段代碼,解釋全在注釋里:
#include?<iostream>
using?namespace?std;
//學(xué)生總數(shù)
const?int?MaxStudentNo?=?3;
//結(jié)構(gòu)體
struct?Student
{
//學(xué)號(hào)
int?no;
//姓名
char?name[20];
//第一門課成績(jī)
double?score1;
//第二門課成績(jī)
double?score2;
//第三門課成績(jī)
double?score3;
};
//獲取學(xué)生的成績(jī)平均值
double?getStudentAvgScore(Student*?student)?{
return?(student->score1?+?student->score2?+?student->score3)?/?3;
}
//輸出學(xué)生信息
void?outputStudentInfo(Student*?student)?{
cout?<<?"------------------------------------"?<<?endl;
cout?<<?"學(xué)號(hào):"?<<?student->no?<<?endl;
cout?<<?"姓名:"?<<?student->name?<<?endl;
cout?<<?"成績(jī):"
<<?student->score1?<<?","
<<?student->score2?<<?","
<<?student->score3?<<?endl;
cout?<<?"平均成績(jī):"?<<?getStudentAvgScore(student)?<<?endl;
cout?<<?"------------------------------------"?<<?endl;
}
//從一些學(xué)生中獲取平均成績(jī)最高的學(xué)生
Student*?getMaxAvgStudent(Student*?students[])?{
Student*?retStudent?=?students[0];
double?max?=?getStudentAvgScore(retStudent);
for?(int?i?=?1;?i?<?MaxStudentNo;?i++)
{
//如果這個(gè)學(xué)生沒有初始化,則略過
if?(!students[i])?{
continue;
}
double?score?=?getStudentAvgScore(students[i]);
if?(max?<?score)
{
max?=?score;
retStudent?=?students[i];
}
}
return?retStudent;
}
int?main()
{
//初始化學(xué)生指針數(shù)組,并輸入學(xué)生信息
Student*?students[MaxStudentNo]?=?{0};
for?(int?i?=?0;?i?<?MaxStudentNo;?i++)
{
cout?<<?"請(qǐng)輸入第"?<<?i?+?1?<<?"位學(xué)生的信息:"?<<?endl;
Student*?s?=?new?Student();
cout?<<?"學(xué)號(hào):"?<<?endl;
cin?>>?s->no;
cout?<<?"姓名:"?<<?endl;
cin?>>?s->name;
cout?<<?"第一門課成績(jī):"?<<?endl;
cin?>>?s->score1;
cout?<<?"第二門課成績(jī):"?<<?endl;
cin?>>?s->score2;
cout?<<?"第三門課成績(jī):"?<<?endl;
cin?>>?s->score3;
students[i]?=?s;
}
//先輸出所有學(xué)生的詳細(xì)信息
cout?<<?endl?<<?MaxStudentNo?<<?"位學(xué)生的詳細(xì)信息:"?<<?endl;
for?(int?i?=?0;?i?<?MaxStudentNo;?i++)
{
outputStudentInfo(students[i]);
}
//再輸出平均成績(jī)最高的學(xué)生
cout?<<?endl?<<?"平均成績(jī)最高的學(xué)生信息:"?<<?endl;
Student*?maxAvgScoreStudent?=?getMaxAvgStudent(students);
outputStudentInfo(maxAvgScoreStudent);
//清理資源,退出程序
delete?maxAvgScoreStudent;
delete[]?students;
return?0;
}
來(lái)一張效果圖:

