标题:[讨论][求助]编译,链接无误,运行时却提示错误.
取消只看楼主
andersion
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-5-28
 问题点数:0 回复次数:0 
[讨论][求助]编译,链接无误,运行时却提示错误.

这个程序我弄了两个星期,就是编译,链接无误,运行时却提示错误:本人认为在CreatLinklist函数
中的pend->next = NULL语句没起作用,在调试中提示cout<<"数值"<<n<<"为"<<p->data<<endl有问题,
我自己认为是while(p != NULL)这个语句没起作用引起的,就是p这个指针最后并没有为空指针,但是我
修改两个星期还是没有成功,问题是存在.希望各位高手能给予帮助,最好能运行一下我的程序,然后给我
详细的指导,我也希望能和大家交流,本人将万分感谢诸位同人的帮助.



/* 输入数列,以某数为结束标志,以“先进先出”方式生成单链表,
输出表中各结点的值;再求表中结点的平均值、最大值、最小值。 */

#include <iostream>
#include <cstdlib>

using namespace std;

typedef struct node {
double data;
struct node* next;
}Linklist;

Linklist* CreatLinklist(Linklist* phead)
{
phead = NULL;
Linklist* pend, * pnew;

pend = phead;

do{
if((pnew =(Linklist*)malloc(sizeof(Linklist))) == NULL) {
cout<<"堆区内存已用完!"<<endl;
exit(1);
}

pnew->next = NULL;
cout<<"请输入数值(为0则结束):";
cin>>pnew->data;

if(phead == NULL)
phead = pnew;
else
pend->next = pnew;
pend = pnew;
}while(pnew->data != 0);

pend->next = NULL;

free(pnew);
return phead;
}

void LinkShow(Linklist * phead)
{
int n = 1;
double evp, sum = 0;
Linklist * p = phead;

while(p != NULL) {
cout<<"数值"<<n<<"为"<<p->data<<endl;
sum += p->data;
p = p->next;
n++;
}
evp = sum/n ;
cout<<"表中结点的平均值:"<<evp<<endl;

}

void LinkFun( Linklist * phead)
{
Linklist * pcur;
double min, max;

for(pcur = phead; pcur->next != NULL; pcur = pcur->next) {
if(pcur->next->data > pcur->data)
max = pcur->next->data;
else
max = pcur->data;

if(pcur->next->data < pcur->data)
min = pcur->next->data;
else
min = pcur->data;
}

cout<<"最大值为:"<<max<<endl;
cout<<"最小值为:"<<min<<endl;

}

int main()
{
Linklist a, * head;
head = &a;
head = CreatLinklist(head);

cout<<"表中各节点值为:\n";

LinkShow(head);

LinkFun(head);

return 0;
}

搜索更多相关主题的帖子: 链接 编译 无误 运行 提示 
2007-05-28 22:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-143111-1-1.html




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

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