| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 757 人关注过本帖
标题:求大神看看哪里错了,运行中断
只看楼主 加入收藏
APTX
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-3-29
结帖率:50%
收藏
 问题点数:0 回复次数:5 
求大神看看哪里错了,运行中断
#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 编辑 ]
搜索更多相关主题的帖子: English average include 程序设计 public 
2015-05-18 22:38
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
经vc6运行,未出现中断,但没有输出。调试发现你head未取得头链表地址。

能编个毛线衣吗?
2015-05-19 05:53
APTX
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2015-3-29
收藏
得分:0 
回复 2楼 wmf2014
要怎么取得呢
2015-05-28 14:26
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:0 
链表的创建和显示没必要放在成员函数里

一片落叶掉进了回忆的流年。
2015-05-28 16:14
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:0 
回复 3楼 APTX
因为在你输入链表结点的函数里,head是形参,生命周期只存在于函数体内。要得到头结点,你试一下把保存了头结点的head作为返回值返回出来。另外也可以在函数体外面定义一个head作全局变量,把形参的head去掉不要
2015-05-28 21:31
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:0 
回复 5楼 yangfrancis
我说错了,不是把head定义成全局变量,是定义成类里面的成员变量
2015-05-28 21:33
快速回复:求大神看看哪里错了,运行中断
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016805 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved