此代码不能运行 求解!!!

sjy666666 2012-04-14 07:23:27
#include <stdio.h>
#include<string.h>
#include<iostream.h>
#define max 100
typedef struct Lab
{
char name,kind,people;
int num;
struct Lab *next;
}Lab,*Labb;


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

}

void creatlab(Labb &l,int n)
{
Labb 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=a;
p->kind=b;
p->people=c;
p->num=d;
p->next = NULL;
l->next=p;
l=p;
}
l=s;
}
void insertlab(Labb &l,int i,char a,char b,char c,int d)
{
Labb p,q,s;
int m=0;
if(i==1)
{
p=new Lab;

p->name=a;
p->kind=b;
p->people=c;
p->num=d;
p->next=l->next;
l->next=p;
}

else
{s=l;
while(m!=i-1)
{
s=s->next;
m++;
}
q=new Lab;
p->name=a;
p->kind=b;
p->people=c;
p->num=d;
q->next=s->next;
s->next=q;
}
}
void xiugai(Labb &l,int i ,char a,char b,char c,int d)
{Labb s;
int m=0;
s=l;
while(i!=m)
{s=s->next;
}
s->name=a;
s->kind=b;
s->people=c;
s->num=d;
}
void chaxun(Labb &l,char a)
{Labb s;
s=l;
while(s->name!=a)
{
s=s->next;
}
printf("%s\n",s->name);
printf("%s\n",s->kind);
printf("%s\n",s->people);

printf("%s\n",s->num);
}

void Printlab(Labb l ) {

Labb 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 ListDelete_L(Labb &l,int i ) {
Labb p,s;
int m=0;
if (i==1)
{
p=l;
l=l->next;
delete p;
}
else
{
p=l;
while (m!=i-1)
{p=p->next;
m++;
}
s=p->next;
p->next=p->next->next;
delete s;
}
}
void main()
{
Labb La;
int n;
InitLab(La);
printf("请输入实验室原有的器材和不同器材的数");
cin>>n;
creatlab(La, n);
printf("1 2 3 4 6\n");
printf("添加 删除 修改 查询 显示\n");
printf("请选择:\n");
scanf("%d",&n);
switch(1)
{
case 1:
printf("请输入 插入位置 设备的名字 种类 管理人 数量");
char q,w,e;
int d,i;
cin>>q;cin>>w;cin>>e;cin>>d;cin>>i;
insertlab(La,i,q,w,e,d);
break;
case 2:
printf("请输入删除的位置");
int j;
cin>>j;
ListDelete_L(La,j);
break;
case 3:
printf("请输入设备的名字 种类 管理人 数量和插入位置");
char z1,z2,z3;
int d1,i1;
cin>>z1;cin>>z2;cin>>z3;cin>>d1;cin>>i1;
xiugai(La,i,q,w,e,d);
break;
case 4:
printf("请输入设备的名字");
char a;
chaxun(La,a);
break;

case 6:
Printlab(La);
break;
}
}





...全文
81 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
super_admi 2012-04-14
  • 打赏
  • 举报
回复
问题很简单:你不能运行,是因为你写错了。
乐天的猪 2012-04-14
  • 打赏
  • 举报
回复
code=C/C++]
void insertlab(Labb &l,int i,char a,char b,char c,int d)
{
Labb p=NULL,s=NULL;
int m=0;
if(i==1)
{
p=new Lab;

p->name=a;
p->kind=b;
p->people=c;
p->num=d;
p->next=l->next;
l->next=p;
}

else
{s=l;
while(m!=i-1)
{
s=s->next;
m++;
}
p=new Lab;
p->name=a;
p->kind=b;
p->people=c;
p->num=d;
p->next=s->next;
s->next=p;
}
}
[/code]
你的insert代码有问题吧,变量q应该是没有用到的。
另外,变量定义的时候最好初始化。
c和c++最好不要混着用。
笨蛋糕 2012-04-14
  • 打赏
  • 举报
回复
lz使用的什么环境啊?是不是输入数字了以后没反应
得一直输?
sjy666666 2012-04-14
  • 打赏
  • 举报
回复
不行啊 还是不能实行case1 这个函数吗?
乐天的猪 2012-04-14
  • 打赏
  • 举报
回复


#include <stdio.h>
#include<string.h>
#include<iostream>

using namespace std;

#define max 100
typedef struct Lab
{
char name,kind,people;
int num;
struct Lab *next;
}Lab,*Labb;


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

}

void creatlab(Labb &l,int n)
{
Labb 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=a;
p->kind=b;
p->people=c;
p->num=d;
p->next = NULL;
l->next=p;
l=p;
}
l=s;
}
void insertlab(Labb &l,int i,char a,char b,char c,int d)
{
Labb p,q,s;
int m=0;
if(i==1)
{
p=new Lab;

p->name=a;
p->kind=b;
p->people=c;
p->num=d;
p->next=l->next;
l->next=p;
}

else
{s=l;
while(m!=i-1)
{
s=s->next;
m++;
}
q=new Lab;
p->name=a;
p->kind=b;
p->people=c;
p->num=d;
q->next=s->next;
s->next=q;
}
}
void xiugai(Labb &l,int i ,char a,char b,char c,int d)
{Labb s;
int m=0;
s=l;
while(i!=m)
{s=s->next;
}
s->name=a;
s->kind=b;
s->people=c;
s->num=d;
}
void chaxun(Labb &l,char a)
{Labb s;
s=l;
while(s->name!=a)
{
s=s->next;
}
printf("%s\n",s->name);
printf("%s\n",s->kind);
printf("%s\n",s->people);

printf("%s\n",s->num);
}

void Printlab(Labb l ) {

Labb 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 ListDelete_L(Labb &l,int i ) {
Labb p,s;
int m=0;
if (i==1)
{
p=l;
l=l->next;
delete p;
}
else
{
p=l;
while (m!=i-1)
{p=p->next;
m++;
}
s=p->next;
p->next=p->next->next;
delete s;
}
}
void main()
{
Labb La;
int n;
InitLab(La);
printf("请输入实验室原有的器材和不同器材的数");
cin>>n;
creatlab(La, n);
printf("1 2 3 4 6\n");
printf("添加 删除 修改 查询 显示\n");
printf("请选择:\n");
scanf("%d",&n);
switch(1)
{
case 1:
printf("请输入 插入位置 设备的名字 种类 管理人 数量");
char q,w,e;
int d,i;
cin>>q;cin>>w;cin>>e;cin>>d;cin>>i;
insertlab(La,i,q,w,e,d);
break;
case 2:
printf("请输入删除的位置");
int j;
cin>>j;
ListDelete_L(La,j);
break;
case 3:
printf("请输入设备的名字 种类 管理人 数量和插入位置");
char z1,z2,z3;
int d1,i1;
cin>>z1;cin>>z2;cin>>z3;cin>>d1;cin>>i1;
xiugai(La,i,q,w,e,d);
break;
case 4:
printf("请输入设备的名字");
char a;
chaxun(La,a);
break;

case 6:
Printlab(La);
break;
}
}

头文件改为#include<iostream>,添加命名空间名 using namespace std;

64,639

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧