求大神看看哪里错了,运行中断
#include <iostream>#include <stdlib.h>
using namespace std;
class score
{ public:
int num;
double Math;
double English;
double Programming;
void inscore(score *head);
void showscore(score *head);
double average();
score *next;
};
void score::inscore(score *head)
{ score *p=0,*q;
q=new score;
cout<<"输入学生的学号、数学、英语及程序设计成绩:"<<endl;
cin>>q->num>>q->Math>>q->English>>q->Programming;
while( q->num!=0 && q->Math!=0 && q->English!=0 && q->Programming!=0 )
{ if(head==NULL) p=head=q;
else p->next=q;
p=q;
q=new score;
cout<<"输入学生的学号、数学、英语及程序设计成绩:"<<endl;
cin>>q->num>>q->Math>>q->English>>q->Programming;
}
q->next=NULL;
}
void score::showscore(score *head)
{ cout<<"学号 数学 英语 程序设计 平均成绩:"<<endl;
while(head)
{ cout<<head->num<<'\t'<<head->Math<<'\t'<<head->English<<'\t'<<head->Programming<<'\t'<<average()<<endl;
head=head->next;
}
cout<<endl;
}
double score::average()
{ return (Math+English+Programming)/3;
}
int main()
{ score *head=NULL;
head->inscore(head);
head->showscore(head);
return 0;
system("pause");
}
求改正,最好讲解一下,谢谢
[ 本帖最后由 APTX 于 2015-5-22 11:57 编辑 ]