【求助】大家来帮帮我,明天交作业了【自己把问题解决掉了!!汗!!都没有人帮帮忙的!!】
大伙帮我看看,今天早上还可以运行的,怎么现在又不行了? 我用的是vc++6.0,大家帮我调试一下,看看问题出在那里,我改了几遍,现在都被指针指晕了!#include<iostream.h>
#include<string.h>
#define NULL 0
struct stu
{
int no;
char name[9];
int en;
struct stu *next;
}a={123,"zc",89,NULL},
b={124,"df",89,NULL},
c={1568,"gg",89,NULL},
d={1568,"gg",89,NULL},
e={1569,"hh",89,NULL},
f={1670,"kk",89,NULL},*p;
void unite(stu &a,stu &d)
{//合并链表
struct stu *p;
p=&a;
while(p->next!=NULL)
{
p=p->next;
}
p->next=&d;
}
void del_again(stu a)
{
struct stu *p,*p1,*p2,*p3;
//int i=0,j=0;
p1=p2=&a;
p=a.next;
if(p1==NULL)
{
cout<<"空表!!";
}
while(p1)
{
while(p)
{
if(p1->no==p->no&&!(strcmp(p1->name,p->name))&&p1->en==p->en)
{
p3=p;
p2->next=p->next;
p=p->next;
//delete p3;
}
else
{
p2=p2->next;
p=p->next;
}
}
p1=p2=p1->next;
p=p2->next;
//i++;
}
}
void printstu(stu a)
{
stu *p;
p=&a;
if(p==NULL) //若为空表
{
cout<<"空表!";
}
//构造建议表格
cout<<"no\t"; //表格开始
cout<<"name\t";
//cout<<"m\t";
cout<<"en"<<endl;
cout<<"--------------------------"<<endl;
while(p) //循环输出链表的信息
{
cout<<p->no<<"\t";
cout<<p->name<<"\t";
//cout<<p->m<<"\t";
cout<<p->en<<endl;
p=p->next;
}
cout<<"--------------------------"<<endl; //表格结束
}
void main()
{
//struct stu a,b,c,d,e,f,*p;
//构造链表A(a,b,c)
p=&a;
p->next=&b;
p=p->next;
p->next=&c;
//构造链表B(d,e,f)
p=&d;
p->next=&e;
p=p->next;
p->next=&f;
//调用组合链表函数
unite(a,d);
//输出函数
printstu(a);
//去重
del_again(a);
cout<<"去重后的结果为:"<<endl;
printstu(a);
}
[[it] 本帖最后由 J_j 于 2008-10-9 21:18 编辑 [/it]]