最高成绩(静态成员)

最高成绩(静态成员)

题目描述

学生类定义如下:
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;
}

猜你喜欢

转载自blog.csdn.net/xindolia_ring/article/details/80280806