亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

用結構體寫這個程序,求大神幫忙

用結構體寫這個程序,求大神幫忙

C
慕粉1139395306 2017-03-10 23:00:50
有三個學生,每個學生的數據包括學號,姓名,三門課程的成績,從鍵盤輸入3個學生數據,要求輸出三門課的評均成績,以及最高平均分的學生的數據,包包括學號,姓名,三門課成績,和平均成績。
查看完整描述

1 回答

已采納
?
習慣受傷

TA貢獻885條經驗 獲得超1144個贊

我就直接寫了一段代碼,解釋全在注釋里:

#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;
}

來一張效果圖:

http://img1.sycdn.imooc.com//58c3682000016d1f03370544.jpg

http://img1.sycdn.imooc.com//58c3682a0001950f02970434.jpg

查看完整回答
4 反對 回復 2017-03-11
  • 1 回答
  • 1 關注
  • 994 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號