关于C++友元的题目,不知道错在什么地方~高手指点下~

来源:百度知道 编辑:UC知道 时间:2024/07/02 17:46:30
#include <iostream.h>
#include <string.h>
class stud
{
public:
stud(char name[]="",int score=0)
{
strcpy(this->name,name);
this->score=score;
}
void setdata()
{
cout<<"请输入学生姓名:";cin>>name;
cout<<"请输入学生成绩:";cin>>score;
}
void display()
{
cout<<"学生姓名为:"<<name<<endl;
cout<<"学生成绩为:"<<score<<endl;
}
friend void sel(stud x[5]);
private:
char name[10];
int score;
};
void sel(stud x[5])
{
int m;
cout<<"请输入要查询的成绩:";
cin>>m;
cout<<"----------------------------------------"<<endl;
for(int i=0;i<5;i++)
{
if(x[i].score==m)
{
cout<<"姓名:"<<x[i].name<<'\t';
cout<<"

void main()
{ stud x[5];
cout<<"----------------请输入学生信息-----------"<<endl;
for(int i=0;i<5;i++)
{
x[i].setdata();
}
cout<<"----------------------------------------"<<endl;
sel(x); //sel(x[5]); -> sel(x);
}

另外,在查询时内部不应直接使用if..else语句打印,应该添加一个标记变量(假定初始化为flase),在查询到满足条件的学生时将其置为true,最后在for循环的外面检测该标记,如果该标记为flase,则打印:没有等于该成绩的学生"。