- #include <iostream>
- using namespace std;
- class Student
- {
- public:
- Student(int n,float s):num(n),score(s){}//構造函數
- void display();
- int getNum(){return num;}//用公有的成員函數可以調用私有的數據成員的值
- float getScore(){return score;}
- private:
- int num;
- float score;
- };
- void Student::display()
- {
- cout<<num<<" "<<score<<endl;
- }
- int max(Student *arr);
- int main()
- {
- Student stud[5]={
- Student(101,86.5),Student(102,83),Student(103,82),
- Student(104,71),Student(105,99)}; //前面已經進行定義了構造函數,所以在此可以進行初始化
- for(int i=0;i<5;i+=2)
- {
- cout<<"學生"<<i+1<<": ";
- stud[i].display();
- }
- cout<<"5個學生中成績最高者的學號爲: "<<max(stud)<<endl;//調用中,實際參數是數組名,傳遞給形式參數arr的是數組的首地址
- system("pause");
- return 0;
- }
- int max(Student *arr)//arr在接受數組首地址之後,可以作爲一個數組訪問
- {
- float max_score=arr[0].getScore();//默認第一個學生的成績最高
- int k=0;
- for(int i=1;i<5;i++)
- if(arr[i].getScore()>max_score)//arr[i].還可以寫作(*(arr+i)).--不能是*(arr+i).;或者用(arr+i)->,下面的語句類似
- {
- max_score=arr[i].getScore();//arr[i].還可以寫作(*(arr+i)).-
- k=i;
- }
- return arr[k].getNum();//或者是(*(arr+k)).getNum()
實驗報告 5---3
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.