各位高手帮忙看看数据结构(C语言版)程序哪有错? 老师说这个代码是能运行的,我怎么编译完一堆错。。 20

#include<stdio.h>#include<conio.h>#defineMAX30//定义线性表的最大长度enumBOOL{False,True};//定义BO... #include <stdio.h>
#include <conio.h>
#define MAX 30 //定义线性表的最大长度
enum BOOL{False,True}; //定义BOOL型
typedef struct{
char elem[MAX]; //线性表
int last; //last指示当前线性表的长度
}sqlist;
void initial(sqlist &); //初始化线性表
BOOL insert(sqlist &,int,char); //在线性表中插入元素
BOOL del(sqlist&,int,char &); //在线性表中删除元素
int locate(sqlist,char); //在线性表中定位元素
void print(sqlist); //显示线性表中所有元素
void main()
{sqlist S; //S为一线性表
int loc,flag=1;
char j,ch;
BOOL temp;
printf("本程序用来实现顺序结构的线性表。\n");
printf("可以实现查找、插入、删除等操作。\n");
initial(S); //初始化线性表
while(flag)
{ printf("请选择:\n");
printf("1.显示所有元素\n");
printf("2.插入一个元素\n");
printf("3.删除一个元素\n");
printf("4.查找一个元素\n");
printf("5.退出程序 \n");
scanf(" %c",&j);
switch(j)
{case '1':print(S); break; //显示所有元素
case '2':{printf("请输入要插入的元素(一个字符)和插入位置:\n");
printf("格式:字符,位置;例如:a,2\n");
scanf(" %c,%d",&ch,&loc); //输入要插入的元素和插入的位置
temp=insert(S,loc,ch); //插入
if(temp==False) printf("插入失败!\n"); //插入失败
else {printf("插入成功!\n"); print(S);} //插入成功
break;
}
case '3':{printf("请输入要删除元素的位置:");
scanf("%d",&loc); //输入要删除的元素的位置
temp=del(S,loc,ch); //删除
if(temp==True) printf("删除了一个元素:%c\n",ch); //删除成功
else printf("该元素不存在!\n"); //删除失败
print(S);
break;
}
case '4':{printf("请输入要查找的元素:");
scanf(" %c",&ch); //输入要查找的元素
loc=locate(S,ch); //定位
if(loc!=-1) printf("该元素所在位置:%d\n",loc+1); //显示该元素位置
else printf("%c 不存在!\n",ch);//当前元素不存在
break;
}
default:flag=0;printf("程序结束,按任意键退出!\n");
}
}
getch();
}
void initial(sqlist &v)
{//初始化线性表
int i;
printf("请输入初始线性表长度:n="); //输入线性表初始化时的长度
scanf("%d",&v.last);
printf("请输入从1到%d的各元素(字符),例如:abcdefg\n",v.last);
getchar();
for(i=0;i<v.last;i++) scanf("%c",&v.elem[i]); //输入线性表的各元素
}
BOOL insert(sqlist &v,int loc,char ch)
{//插入一个元素,成功返回True,失败返回False
int i;
if((loc<1)||(loc>v.last+1))
{printf("插入位置不合理!\n"); //位置不合理
return False;
}
else if(v.last>=MAX)
{printf("线性表已满!\n");
return False;
}
else {for(i=v.last-1;i>=loc-1;i--) v.elem[i+1]=v.elem[i];
v.elem[loc-1]=ch;
v.last++;
return True;
}
}

BOOL del(sqlist &v,int loc,char &ch)
{
int j;
if(loc<1||loc>v.last)
return False;
else {ch=v.elem[loc-1];
for(j=loc-1;j<v.last-1;j++) v.elem[j]=v.elem[j+1];
v.last--;
return True;
}
}

int locate(sqlist v,char ch)
{
int i=0;
while(i<v.last&&v.elem[i]!=ch) i++; if(v.elem[i]==ch)
return i;
else return(-1);
}
void print(sqlist v)
{int i;
for(i=0;i<v.last;i++) printf("%c ",v.elem[i]);
printf("\n");
}
由于字数限制,后面的注释删掉了
展开
 我来答
djh543
2012-03-15 · TA获得超过156个赞
知道小有建树答主
回答量:74
采纳率:0%
帮助的人:87.5万
展开全部
我复制下来试了,可以运行,你是不是少了#include "stdafx.h"这个?vc6.0头文件一般都要加这个的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
被坑户内20
2012-03-13 · TA获得超过621个赞
知道小有建树答主
回答量:854
采纳率:0%
帮助的人:476万
展开全部
#include <stdio.h>
#include <conio.h>
你用什么编译的? 你编译环境有问题吧。。
追问
VC++6.0的啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1152301745
2012-03-19
知道答主
回答量:43
采纳率:0%
帮助的人:9.6万
展开全部
你把#include <stdio.h>
#include <conio.h>屏蔽一个试试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
魔杖风铃
2012-03-13
知道答主
回答量:4
采纳率:0%
帮助的人:3.3万
展开全部
用keil软件编c比较好
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式