C++ 习题9.5 (返回指针!) 建立一个对象数组,内放5个学生的数据(学号,成绩),设立一个max函数,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号。

本文通过一个具体的C++实例,展示了如何使用指针和自定义max函数来找出数组中具有最大成绩的学生信息。文章详细解释了类的成员函数、指针操作以及比较逻辑,为初学者提供了一个理解指针和函数应用的良好案例。

max函数返回一个指向对象的指针,便于用指针访问该类中的成员函数。

#include<iostream>
using namespace std;

class Student{
public:
	Student(int n, float s):num(n),float(s){}
	int snum();
	float sscore();
private:
	int num;
	float sscore();
};

int Student::snum(){	
	return num;
}

float Student::sscore(){
	return score;
}

int main(){
	Student stu[5]={{1001,86},{1002,68},{1003,90},{1004,77},{1005,94}};
	Student *p=stu; //数组名就是数组的首地址,相当于 *p=&stu[0]
	Student* max(Student *); //max函数的声明
	cout <<"The highest score : NO."<<max(p)->ssnum()<<"  "<<max(p)->sscore()<<endl;
	return 0;
}

Student *max(Student *p){
	Student *q=p;   
	int count=1;
	while(count < 5){
		p++;
		if( p->sscore() > q->sscore() ) //p所指对象的成绩大于q所指
			q=p;//让p指向成绩最大的对象
		count++;
	}
	return q;
}


(可以直接复制运行)

	


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值