最高成绩(静态成员)
题目描述
学生类定义如下:
class Student {
private:
int id;
//学号
int score; //成绩
static int maxscore;
//最高分数
static int maxid;
//最高分数学生学号
public:
Student(int ti=0,
int ts=0)
:id(ti), score(ts)
{}
static void findMax(Student & st); //寻找最高成绩和学号
static int getMaxScore(); //返回最高成绩
static int getMaxID();
//返回最高成绩的学号
};
输入一组学生学号和成绩,用上述静态成员求最高成绩和对应学号
输入
第一行输入n表示有n个学生
接着输入n行,每行包括两个数据,表示学号和成绩
输出
调用静态成员函数输出学号和最高成绩,格式看样例
样例输入
3
1002 68
1023 54
1045 32
样例输出
1002--68
【my code】
#include <stdio.h> #include <iostream> using namespace std; #define N 30 void FindMax(int score[],long num[],int n,int *pMaxScore,long *pMaxNum); void FindMax(int score[],long num[],int n,int *pMaxScore,long *pMaxNum) //读取最高分及其对应的学号 { int i; *pMaxScore = score[0]; //假设第一个为最高分,并指向指针 *pMaxNum = num[0]; //记录第一个人的学号 for(i = 1;i < n;i++) { if(score[i] > *pMaxScore) //判断是否大于当前值 { *pMaxScore = score[i]; //修改指针指向地址 *pMaxNum = num[i]; //修改指向学号的地址 } } } int main() { int score[N],maxScore; int n,i; long num[N],maxNum; // printf("学生总数:"); cin >> n; //读取学生总数 for(i = 0; i < n; i++) { // printf(" 输入ID:"); //录入成绩和学号 cin >> num[i]; // printf(" 输入成绩:"); cin >> score[i]; } FindMax(score,num,n,&maxScore,&maxNum); // printf("最高分数:%d,对应学号:%ld\n",maxScore,maxNum); cout << maxNum << "--" << maxScore << endl; return 0; }