读书人

初学者写的程序 帮忙看看

发布时间: 2012-04-14 17:14:21 作者: rapoo

菜鸟写的程序 帮忙看看
#include <stdio.h>
#include<string.h>
#include<iostream.h>

typedef struct Lab
{
char name[10],kind[10],people[10];
int num;
struct Lab *next;
}Lab,*Labb;


void InitLab(Labb &l)
{
l = new Lab;
l->next = NULL;

}

void creatlab(Labb &l,int n)
{
Lab *p,*s;


s=l;
int i,d;
char a,b,c;
for(i=1;i<=n;i++)
{cin>>a;cin>>b;cin>>c;cin>>d;
p=new Lab;
p->name[10]=a;
p->kind[10]=b;
p->people[10]=c;
p->num=d;

l->next=p;
l=p;
}
l=s;
}
void Printlab(Labb l ) {

Labb s;

s=l->next;

cout<<"The laborary is:"<<endl;
while(s)
{
cout<<s->name<<" ";
cout<<s->kind<<" ";

cout<<s->people<<" ";
cout<<s->num<<" ";


s=s->next;


}
cout<<endl;
}
void main()
{
Labb La;
int n;
InitLab(La);
printf("请输入n");
cin>>n;
creatlab(La, n);
Printlab(La );
}

[解决办法]
void creatlab(Labb &l,int n)
{
Lab *p,*s;


s=l;
int i,d;
char a,b,c;
for(i=1;i<=n;i++)
{
cin>>a;cin>>b;cin>>c;cin>>d;
p=new Lab;
p->name[10]=a;
p->kind[10]=b;
p->people[10]=c;
p->num=d;
p->next = NULL; //加上这句试下,你链表最后没有个空的,在printlab()中就死循环吧
l->next=p;
l=p;
}
l=s;
}

探讨
void Printlab(Labb l ) 这函数有问题 可就不知道哪不对

读书人网 >C++

热点推荐