求大神帮我看看我这个程序哪出错了

XWJCoding 2015-04-30 09:27:50
#include<iostream>
using namespace std;
class Student{
public:
Student();
Student(long,int);
void display();
friend void max(Student *p);
private:
long code;
int score;
};

Student::Student(){}
Student::Student(long co,int s)
{
co=code;
s=score;
}

void Student::display()
{
cout<<code<<"\t"<<score;
}

void max(Student *p)
{
int i,max=0;
for(i=0;i<5;i++)
if((p+i)->score>max)
max=(p+i)->score;
cout<<"最好成绩:"<<endl;
cout<<"学号"<<"\t"<<"成绩"<<endl;
(p+i)->display();
}
int main()
{
int i;
Student *p;
Student Stu[5]={
Student(1001,90),
Student(1002,80),
Student(1003,95),
Student(1004,85),
Student(1005,70),
};
cout<<"输出:"<<endl;
cout<<"学号"<<"\t"<<"成绩"<<endl;
for(i=0;i<5;i++)
{
Stu[i].display();
cout<<endl;
}
p=Stu;
max(p);
cout << endl;
return 0;
}


...全文
101 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
softee 2015-04-30
  • 打赏
  • 举报
回复
自己分析吧,不能老指望别人啊。
XWJCoding 2015-04-30
  • 打赏
  • 举报
回复
为什么(p+i)就没了呢
XWJCoding 2015-04-30
  • 打赏
  • 举报
回复
嗯嗯!大一新手,谢谢啦
softee 2015-04-30
  • 打赏
  • 举报
回复
cout<<"学号"<<"\t"<<"成绩"<<endl; (p+i)->display(); +++++++++++++++++++++++++++++++++++ 不要用(p+i)->display(); 改成 cout<<max<<endl; 这个时候,p+i已经指飞了。 兄弟,新手吧。
XWJCoding 2015-04-30
  • 打赏
  • 举报
回复
还是不行啊?请问该如何改
softee 2015-04-30
  • 打赏
  • 举报
回复
for(i=0;i<5;i++) if((p+i)->score>max) max=(p+i)->score; +++++++++++++++++++++ for语句螚加个括号吗? for(i=0;i<5;i++){ if((p+i)->score>max) max=(p+i)->score; }
XWJCoding 2015-04-30
  • 打赏
  • 举报
回复
谢谢,改回来后真的可以了,但是最大值那里还是没有输出
softee 2015-04-30
  • 打赏
  • 举报
回复
Student::Student(){} Student::Student(long co,int s) { co=code; s=score; } ++++++++++++++++++++++++++++++++ 应该这样写: Student::Student(){} Student::Student(long co,int s) { core=co; score=s; }

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧