一道有关《数据结构》的 题目 《编写实现线形表的》 我都已经琢磨了两天了 还是没有结果
求助问题:1。在第5项功能中无法找出要查找的元素,输入要查找的元素后直接显示:没有您要查找的元素,然后就是出错关闭信息。
2 。如何初始化线性表,帮忙在本程序上添加
(太感谢你们了 本程序已经调试好了,在VC++下C++source file中调试通过)
程序如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef int elemtype;
typedef struct
{
elemtype name[10];
int length;
}student;
void outlin(student xs);
void creat(student *p);
void insert(student *p,int i,int x);
void dell(student *p,int i);
void chazhao(student *p,elemtype i);
main()
{student xs;
int i,cord,x;
do
{ printf("\n*******主菜单*******\n");
printf("\n 1 建立线性表 \n");
printf("\n 2 插入一个元素 \n");
printf("\n 3 显示当前线性表 \n");
printf("\n 4 删除一个元素 \n");
printf("\n 5 查找一个元素 \n");
printf("\n 6 初始化线性表 \n");
printf("\n 7 退出元素组 \n");
printf("请输入您的选择");
scanf("%d",&cord);
switch(cord)
{
case 1:{creat(&xs);outlin(xs);
}break;
case 2:{ printf("\n 插入位置 i,数据 x:");
scanf("%d %d",&i,&x);
insert(&xs,i,x);
outlin(xs);
}break;
case 3:{outlin(xs);
}break;
case 4:{ printf("\n请输入要删除的位置i=");
scanf("%d",&i);
dell(&xs,i);
outlin(xs);
}break;
case 5:{ printf("\n请输入要查找的数据信息i=");
scanf("%d",&i);
chazhao(&xs,i);
}break;
case 7:exit(0);
}
}while(cord<=7);
}
void outlin(student xs)
{ int i;
for(i=1;i<=xs.length;i++)
printf("\n %2d %6d",i,xs.name[i]);
}
void creat(student *p)
{int i;
printf("\n n=");
scanf("%d",&(p->length));
for(i=1;i<=p->length;i++)
{printf("\n data=");
scanf("%d",&(p->name[i]));
}
}
void insert(student *p,int i,int x)
{
int k;
if((i<=0)||(i>p->length))
printf("\n erroe");
else
{for(k=p->length;k>=i;k--)
p->name[k+1]=p->name[k];
p->name[i]=x;
p->length++;
}
}
void dell(student *p,int i)
{ int k;
if((i<=0)||(i>p->length))
printf("插入位置出错");
else
{
for(k=i;k<=p->length;k++)
p->name[k]=p->name[k+1];
p->length--;
}
}
void chazhao(student *p,elemtype i)
{ int k;
student cha;
cha.name[1]=i;
for(k=1;k<=p->length;k++)
{
if(p->name[k]==cha.name[1])
printf("数据位置 k=%s",k);
else
{ printf("没有这个数据");
}
}
}