C++ 救救孩子
7-6 友元很简单2016final (15 分)C++考试正在进行。请设计一个学生类student,学号、本次考试成绩是其私有数据成员,同时有一个求本次考试成绩最高分的学生的友元函数 student* average(student *p,int count)
以上类名和友元函数的形式,均须按照题目要求,不得修改。
输入格式:
输入是 学号()和成绩,以0结束。(不超过100个学生)
输出格式:
输出是最高分学生的 学号 。 提示:如果是并列最高分,需要将并列最高分学生的学号都输出,以一个空格间隔。
输入样例:
在这里给出一组输入。例如:
10001 90
10002 93
0
输出样例:
在这里给出相应的输出。例如:
10002
#include<iostream>
#include<string.h>
using namespace std;
int sum =0;
double a;
class student
{
double name; double yu;
public:
student()
{
name = 0;
yu = 0;
};
void set(double name1, double yu1)
{
name = name1;
yu = yu1;
}
friend double average(const student* p, int count);
};
double average(const student* p, int count)
{
double max = 0;
double m;
//cout << count<<"wer";
for (int i = 0; i < count; i++)
{
max = p.yu;
if (p.yu >= max)
max = p.name;
}
for (int i = 0; i <count; i++)
{
if (p.yu == max)
{
a = p.name;
sum++;
}
}
return max;
}
int main()
{
student St;
long name;
int num = 0;
double yu;
double yes;
while ((cin >> name) && name != 0 && name >= 00001 && name <= 99999)
{
cin >> yu;
St.set(name, yu);
num++;
}
yes = average(St, num);
//cout << sum << "io";
if(sum==0)
cout << yes;
else
{
for (int i = 0; i <num; i++)
{
cout << a << " ";
}
}
return 0;
}
全局变量一直是错的
页:
[1]