error C2039: 'key' : is not a member of 'ElemType' 怎么修改这个错误?
#include<stdio.h>#include<conio.h>#include<string.h>#include<malloc.h>#defineKeytypei...
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<malloc.h>
#define Keytype int //关键字类型定义
#define MAX_LIST_LEN 100 //定义线性表的最大长度
typedef struct { //定义元素类型
Keytype Key; //关键字定义
}ElemType;
typedef struct{ //查找表顺序存储结构定义
ElemType elem[MAX_LIST_LEN+1]; //elem[0]元素当做工作单元
int length; //查找表长度
}Seq_Table;
Seq_Table seqtbl;
typedef struct NODE{ //查找表链式存储结构定义
ElemType elem; //其中ElemType定义同顺序存储结构
struct NODE *next;
}LINK_NODE;
#define ENDVALUE -1
typedef struct BLNNODE{ //二叉排序树定义
Keytype key; //关键字值
struct BINNODE *lchild,*rchild; //左、右孩子指针
}BSTNode, * BSTree;
//显示主界面
void PrintMenu()
{ printf("\n\n\n\n\n");
printf("\t\t\t --各类查找综合演示-- \n");
printf("\n\t\t\t****************************");
printf("\n\t\t\t* 1------静态查找 *");
printf("\n\t\t\t* 2------动态查找 *");
printf("\n\t\t\t* 0------退 出 *");
printf("\n\t\t\t****************************\n");
printf("\t\t\t请选择功能号(0--2):");
}
//查找表初始化
void ElemInit()
{
int i=1;
ElemType elem;
printf("\n请注意!假定系统查找表的最大长度为%d",MAX_LIST_LEN);
printf("\n请输入若干(<%d)查找表初始元素的关键字值(整数) ,以%d结束.\n",MAX_LIST_LEN,ENDVALUE);
seqtbl.length=0; //初始化查找表长度
while(1)
{
scanf("%d",&elem.key);
if(elem.key==ENDVALUE) break;
else
seqtbl.elem[i++].key=elem.Key; //从第1号单元开始存放数据
seqtbl.length++;
}
}
//输出查找表的所有元素
void output(Seq_Table seqtbl1)
{
int k;
printf("\n\t查找表的地址单元: ");
for(k=1;k<=seqtbl1.length;k++)
printf("%4d",k);
printf("\n\t元素关键字序列为: ");
for(k=1;k<=seqtbl1.length;k++)
printf("%4d",seqtbl1.elem[k]);
}
//数据输入界面
int input()
{
int x;
while(1)
{
printf("\n请输入你要查找元素的关键字值(整型):");
scanf("%d",&x);
getchar();
if(!((x>=-32768)&&(x<=32676)))
printf("\n关键字输入无效,请重新输入!");
else
break;
}
return x;
}
//显示静态查找主页面
void PrintStaticMenu()
{
printf("\n\n\n\n\n");
printf("\t\t\t -- 静态查找综合演示 -- \n");
printf("\n\t\t\t*********************************************");
printf("\n\t\t\t* 1-------查找表初始化 *");
printf("\n\t\t\t* 2-------顺序查找 *");
printf("\n\t\t\t* 3-------顺序查找(设监视哨) *");
printf("\n\t\t\t* 4-------折半查找 *");
printf("\n\t\t\t* 0-------返回主界面 *");
printf("\n\t\t\t***************************************\n");
printf("\t\t\t 请选择功能号(0--4):"); 展开
#include<conio.h>
#include<string.h>
#include<malloc.h>
#define Keytype int //关键字类型定义
#define MAX_LIST_LEN 100 //定义线性表的最大长度
typedef struct { //定义元素类型
Keytype Key; //关键字定义
}ElemType;
typedef struct{ //查找表顺序存储结构定义
ElemType elem[MAX_LIST_LEN+1]; //elem[0]元素当做工作单元
int length; //查找表长度
}Seq_Table;
Seq_Table seqtbl;
typedef struct NODE{ //查找表链式存储结构定义
ElemType elem; //其中ElemType定义同顺序存储结构
struct NODE *next;
}LINK_NODE;
#define ENDVALUE -1
typedef struct BLNNODE{ //二叉排序树定义
Keytype key; //关键字值
struct BINNODE *lchild,*rchild; //左、右孩子指针
}BSTNode, * BSTree;
//显示主界面
void PrintMenu()
{ printf("\n\n\n\n\n");
printf("\t\t\t --各类查找综合演示-- \n");
printf("\n\t\t\t****************************");
printf("\n\t\t\t* 1------静态查找 *");
printf("\n\t\t\t* 2------动态查找 *");
printf("\n\t\t\t* 0------退 出 *");
printf("\n\t\t\t****************************\n");
printf("\t\t\t请选择功能号(0--2):");
}
//查找表初始化
void ElemInit()
{
int i=1;
ElemType elem;
printf("\n请注意!假定系统查找表的最大长度为%d",MAX_LIST_LEN);
printf("\n请输入若干(<%d)查找表初始元素的关键字值(整数) ,以%d结束.\n",MAX_LIST_LEN,ENDVALUE);
seqtbl.length=0; //初始化查找表长度
while(1)
{
scanf("%d",&elem.key);
if(elem.key==ENDVALUE) break;
else
seqtbl.elem[i++].key=elem.Key; //从第1号单元开始存放数据
seqtbl.length++;
}
}
//输出查找表的所有元素
void output(Seq_Table seqtbl1)
{
int k;
printf("\n\t查找表的地址单元: ");
for(k=1;k<=seqtbl1.length;k++)
printf("%4d",k);
printf("\n\t元素关键字序列为: ");
for(k=1;k<=seqtbl1.length;k++)
printf("%4d",seqtbl1.elem[k]);
}
//数据输入界面
int input()
{
int x;
while(1)
{
printf("\n请输入你要查找元素的关键字值(整型):");
scanf("%d",&x);
getchar();
if(!((x>=-32768)&&(x<=32676)))
printf("\n关键字输入无效,请重新输入!");
else
break;
}
return x;
}
//显示静态查找主页面
void PrintStaticMenu()
{
printf("\n\n\n\n\n");
printf("\t\t\t -- 静态查找综合演示 -- \n");
printf("\n\t\t\t*********************************************");
printf("\n\t\t\t* 1-------查找表初始化 *");
printf("\n\t\t\t* 2-------顺序查找 *");
printf("\n\t\t\t* 3-------顺序查找(设监视哨) *");
printf("\n\t\t\t* 4-------折半查找 *");
printf("\n\t\t\t* 0-------返回主界面 *");
printf("\n\t\t\t***************************************\n");
printf("\t\t\t 请选择功能号(0--4):"); 展开
1个回答
展开全部
c和c++都是区分大小写的。ElemType中的成员是Key,不是key
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询