朋友们帮我看看这个程序为什么在vc6.0下运行不了?
#include<iostream>
using namespace std;
class Student
{public:
Student(int n,int s){num=n;score=s;};
int num;
int score;
};
int max(Student *p)
{
Student *t=p;
for(;p<p+5;p++)
{
if((*p).score>(*t).score)(*t).score=(*p).score;
}
return ((*t).num);
}
void main()
{
Student std[5]={Student(1001,98),Student(1002,98),Student(1003,77),
Student(1004,87),Student(1005,76)};
Student *q=std;
cout<<max(q)<<endl;
}
问题点数:20、回复次数:7Top
1 楼lyclowlevel(蓬蒿人)回复于 2005-09-02 18:39:17 得分 3
int max(Student *p)
{
Student *t=p;
for(;p<p+5;p++)//这里出错了,将p<p+5改为p<t+5;
{
if((*p).score>(*t).score)(*t).score=(*p).score;
}
return ((*t).num);
}
Top
2 楼foochow(无聊,灌水......)回复于 2005-09-02 18:44:44 得分 3
最好传个参数进去..
int max(Student *p,int n)
{
Student *t=p;
for(int i=0;i<n;i++,p++)
{
if((*p).score>(*t).score) (*t).score=(*p).score;
}
return ((*t).num);
}Top
3 楼zhouhuahai(道号"虚无")回复于 2005-09-02 19:06:43 得分 3
呵呵,for(;p<p+5;p++)//造成了数组越界!Top
4 楼yayafu(维生素C)回复于 2005-09-02 20:53:54 得分 3
看来是笔误,呵呵Top
5 楼jiajun2001(Jagen(嘉俊))回复于 2005-09-02 21:19:04 得分 3
呵呵,for(;p<p+5;p++)循环条件永远为真啊Top
6 楼stwutong(wsdf)回复于 2005-09-02 21:40:57 得分 3
谢谢楼上的各位兄弟!Top
7 楼snowbirdfly(专心搞好嵌入式~~~)回复于 2005-09-02 22:36:14 得分 2
来迟~~
顶一下~~Top




