注册 登录
编程论坛 C++教室

结构为何不能正确输出?

lixang 发布于 2006-12-24 16:56, 425 次点击

# include<iostream>
using namespace std;

struct L
{
int A;
L* next;
};
L* head;
L* Create(int Array[],int size)
{
head=NULL;
L* cur=NULL;
L* pre=NULL;
cur=new L; cur->A=Array[0];
pre=cur;//³ÌÐòÉÙдÁ˴˾仰£¡
int i=1;
while(i>=(size-1))//´´½¨ÁËÁ¬±í
{
if(NULL==head) head=cur;
else pre->next=cur;
pre=cur;
cur=new L;
cur->A=Array[i];
i++;
}
pre->next=NULL;
delete cur;
return head;
}

void show(L* temp)
{
while(temp)
{
cout<<temp->A;cout<<"hao";
temp=temp->next;
}
}
void main()
{
int AA[]={20,10,12,5,35};
int Size=sizeof(AA)/sizeof(AA[0]);
L*HEAD=Create(AA,Size);
show(HEAD);//程序编译完全通过!
//但为什么此函数不输出结构呢?
请大家指点!
}

2 回复
#2
song42006-12-24 17:38
cur=new L; cur->A=Array[0];
pre=cur;//³ÌÐòÉÙдÁ˴˾仰£¡这句话没什么用吧
应该是 head=cur;
int i=1;
while(i>=(size-1))//´´½¨ÁËÁ¬±í
{
if(NULL==head) head=cur; //这个也没用
else pre->next=cur;
pre=cur;
cur=new L;
cur->A=Array[i];
i++;
}
#3
song42006-12-24 17:43

# include<iostream>
using namespace std;

struct L
{
int A;
L* next;
};
L* head;
L* Create(int Array[],int size)
{
head=NULL;
L* cur=NULL;
L* pre=NULL;
cur=new L; cur->A=Array[0];
pre=head=cur;
int i=1;
while(i<=(size-1))//´´½¨ÁËÁ¬±í
{
cur=new L;
cur->A=Array[i];
i++;
pre->next=cur;
pre=pre->next;
}
pre->next=NULL;
return head;
}

void show(L* temp)
{
while(temp)
{
cout<<temp->A;cout<<"hao";
temp=temp->next;
}
}
void main()
{
int AA[]={20,10,12,5,35};
int Size=sizeof(AA)/sizeof(AA[0]);
L*HEAD=Create(AA,Size);
show(HEAD);//程序编译完全通过!
//但为什么此函数不输出结构呢?
请大家指点!
}

你看看这个行不

1