网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月12日漏签0天
c++吧 关注:619,039贴子:2,111,316
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 11回复贴,共1页
<<返回c++吧
>0< 加载中...

大神帮帮忙,这是为什么 怎么解决

  • 只看楼主
  • 收藏

  • 回复
  • Demon_辉煌
  • ,
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


  • Demon_辉煌
  • ,
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
急求


2025-06-12 15:39:51
广告
  • ⑨chu
  • +
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
目测问题在前面


  • Demon_辉煌
  • ,
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
# include <stdio.h>
# include <stdlib.h>
# include "myhead.h" void main()
{
status choice,i,result;
SqList L;
ElemType e,pre_e,next_e;
do
{
system("cls");
printf("\t\t\t********************************************\n");
printf("\t\t\t*0.退出 *\n");
printf("\t\t\t*1.初始化线性表 *\n");
printf("\t\t\t*2.销毁表 *\n");
printf("\t\t\t*3.重置为空 *\n");
printf("\t\t\t*4.判断是否为空 *\n");
printf("\t\t\t*5.显示表长 *\n");
printf("\t\t\t*6.求数据 *\n");
printf("\t\t\t*7.求位置 *\n");
printf("\t\t\t*8.求前驱 *\n");
printf("\t\t\t*9.求后继 *\n");
printf("\t\t\t*10.插入 *\n");
printf("\t\t\t*11.删除 *\n");
printf("\t\t\t*12.输出线性表 *\n");
printf("\t\t\t*13.逆置 *\n");
printf("\t\t\t*14.统计偶数 *\n");
printf("\t\t\t*15.查找倒数 *\n");
printf("\t\t\t********************************************\n");
printf("请输入所选功能的序号:");
scanf("%d",&choice);
switch (choice)
{
case 0:choice=0;break;
case 1:if(InitList(&L)==OK)
{
printf("请输入线性表的长度:");
scanf("%d",&L.length);
printf("请输入线性表中的数据:");
for (i=0;i<L.length;i++)
scanf("%d",&L.elem[i]);
printf("成功完成线性表初始化操作!\n");
}
else
printf("操作失败,内存溢出!\n");
break;
case 2:if (DestroyList(&L)==OK)
printf("成功完成线性表的销毁\n");
else
printf("销毁失败\n");
break;
case 3:if (ClearList(&L)==OK)
printf("线性表重置为空\n");
else
printf("重置失败\n");
break;


  • Demon_辉煌
  • ,
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
case 4:if (ListEmpty(L)==1)
printf("线性表为空\n");
else
printf("线性表不为空\n");
break;
case 5:printf("线性表长度:%d",ListLength(L));break;
case 6:printf("输入位置:");
scanf("%d",&i);
if (GetElem(L,i,&e)==OK)
printf("此位置的数据:%d\n",e);
else
printf("此位置没有数据\n");
break;
case 7:printf("输入数据:");
scanf("%d",&e);
if (LocateElem(L,e,cmp)!=0)
printf("第%d个数据\n",LocateElem(L,e,cmp));
else
printf("没有找到\n");
break;
case 8:printf("输入数据:");
scanf("%d",&e);
if (PriorElem(L,e,&pre_e)==1)
printf("前驱:%d",pre_e);
else
printf("无前驱\n");
break;
case 9:printf("输入数据:");
scanf("%d",&e);
if (NextElem(L,e,&next_e)==1)
printf("后继:%d",next_e);
else
printf("无后继\n");
break;
case 10:printf("输入位置及数据:");
scanf("%d%d",&i,&e);
result=ListInsert(&L,i,e);
if (result==ERROR)
printf("输入位置有误\n");
else
if (result==OVERFLOW)
printf("操作失败,内存溢出!\n");
else
printf("插入成功\n");
break;
case 11:printf("输入位置:");
scanf("%d",&i);
if (ListDelete(&L,i,&e)==ERROR)
printf("输入位置有误\n");
else
printf("删除的数据:%d",e);
break;
case 12:if (ListTraverse(L,DisplayData)==ERROR)
printf("操作失败\n");
break;
case 13:
if (ListInver(&L)==OK)
printf("逆置成功!");
else
printf("逆置失败!");
break;
case 14:
if (ListStatis(&L)==OK)
printf("偶数个数":%d,c);
else
printf("操作失败\n");
break;
case 15:if (Add(L) == OK)
Add(L);
else
printf("加和失败!\n");
break;
default :printf("输入功能序号有误\n");
}
getchar();
getchar();
}
while (choice!=0);
}


  • Demon_辉煌
  • ,
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
case的每一行都有那个问题


  • Demon_辉煌
  • ,
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#define TRUE 1 //常量定义
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
// status是函数的类型,其值是函数结果状态代码
typedef int status; typedef int ElemType; //定义线性表的数据元素类型为int #define Lsize 100
typedef struct
{
ElemType *elem; //存储空间基址
int length; //当前长度
int listsize; //当前分配的存储容量(以sizeof(ElemType)为单位)
}SqList; //函数声明
status InitList(SqList *L); //初始化
status DestroyList(SqList *L); //销毁线性表
status ClearList(SqList *L); //置空
status ListEmpty(SqList L); //判断是否为空
status ListLength(SqList L); //求长
status GetElem(SqList L,status i,ElemType *e); //求数据
status LocateElem(SqList L, ElemType e,status (*compare)(ElemType, ElemType)); //求位置
status PriorElem(SqList L, ElemType cur_e, ElemType *pre_e); //求前驱
status NextElem(SqList L, ElemType cur_e, ElemType *next_e); //求后继
status ListInsert(SqList *L,status i, ElemType e); //插入
status ListDelete(SqList *L,status i, ElemType *e); //删除
status ListTraverse(SqList L,status (*visit)( ElemType e)); //输出线性表
status DisplayData(ElemType e); //输出一个
status cmp(ElemType a,ElemType b); //比较
status ListInver(SqList * L) ; //逆置线性表
status ListStatis_Sq(SqList * L); //统计偶数
status Findd(SqList L, status i, ElemType *e); //查找倒数第i个元素
/********************************
**函数功能:完成线性表初始化操作。
**参数:L_线性表。
**返回值:整型常量。
********************************/
statusInitList(SqList *L)
{
L->elem=(ElemType *)malloc(Lsize*sizeof (ElemType));
if (!L->elem)
exit(OVERFLOW);
L->length=0;
L->listsize=Lsize;
return OK;
} /*******************************
**函数功能:销毁线性表L。
**参数:L_线性表。
**返回值:整型常量。
*******************************/
status DestroyList(SqList *L)
{
if (InitList(L)==OK)
{
free(L->elem);
L->elem=0;
L->listsize=0;
return OK;
}
else
return ERROR;
} /*************************
**函数功能:将L重置为空表。
**参数:L_线性表。
**返回值:整型常量。
*************************/
status ClearList(SqList *L)
{
if(InitList(L)==OK)
{
L->length=0;
return OK;
}
else
return ERROR;
} /******************************
**函数功能:判断线性表是否为空。
**参数:L_线性表。
**返回值:整型变量。
******************************/
status ListEmpty(SqList L)
{
if (L.length==0)
return 1;
else
return 0;
} /*******************************
**函数功能:返回L中数据元素个数。
**参数:L_线性表。
**返回值:L的长度。
*******************************/
status ListLength(SqList L)
{
return L.length;



  • Demon_辉煌
  • ,
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
} /*****************************************************
**函数功能:求线性表中的元素。
**参数:L_线性表,i_位置,e_存储线性表中第i个元素的数据。
**返回值:整型常量。
*****************************************************/
status GetElem(SqList L,statusi,ElemType *e)
{
if (i<1||i>L.length)
return ERROR;
else
{
*e=L.elem[i-1];
return OK;
}
} /***************************************************************
**函数功能:返回L中第1个与e满足关系compare()的数据元素的位序。
**参数:L_线性表,e_存储线性表中第i个元素的数据,compare_函数指针。
**返回值:整型变量。
***************************************************************/
status LocateElem(SqList L, ElemType e,status(*compare)(ElemType, ElemType))
{
statusi;
for (i=0;i<L.length;i++)
if (compare(L.elem[i],e)==0)
break;
if (i==L.length)
return 0;
else
return i+1;
} /************************************************
**函数功能:求前驱。
**参数:L_线性表,cur_e_线性表中的数据,pre_e_前驱。
**返回值:整型变量。
************************************************/
status PriorElem(SqList L, ElemType cur_e, ElemType *pre_e)
{
statusi;
if (L.elem[0]==cur_e)
return 0;
else
for (i=1;i<L.length;i++)
if (L.elem[i]==cur_e)
{
*pre_e=L.elem[i-1];
break;
}
if (i==L.length)
return 0;
else
return 1;
} /*************************************************
**函数功能:求后继。
**参数:L_线性表,cur_e_线性表中的数据,next_e_后继。
**返回值:整型变量。
*************************************************/
status NextElem(SqList L, ElemType cur_e, ElemType *next_e)
{
statusi;
if (L.elem[L.length-1]==cur_e)
return 0;
else
for (i=0;i<L.length-1;i++)
if (L.elem[i]==cur_e)
{
*next_e= L.elem[i+1];
break;
}
if (i==L.length-1)
return 0;
else
return 1;
} /********************************************
**函数功能:在第i个元素之前插入。
**参数:L_线性表,i_插入的位置,e_存储数据元素。
**返回值:整型常量。
********************************************/
status ListInsert(SqList *L,statusi, ElemType e)
{
ElemType *p,*q,*newbase;
if (i<1||i>L->length)
return ERROR;
else
{
if (L->length>=L->listsize)
{
newbase=(ElemType *)realloc(L->elem,(L->listsize+Lsize)*sizeof(ElemType));
if (!newbase)
exit(OVERFLOW);
L->elem=newbase;
L->listsize=L->listsize+Lsize;
}
q=&L->elem[i-1];
for (p=&(L->elem[L->length-1]);p>=q;--p)
*(p+1)=*p;
*q=e;
++L->length;
return OK;
}
} /********************************************
**函数功能:删除。
**参数:L_线性表,i_删除的位置,e_存储数据元素。
**返回值:整型常量。



2025-06-12 15:33:51
广告
  • Demon_辉煌
  • ,
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
********************************************/
status ListDelete(SqList *L,statusi, ElemType *e)
{
ElemType *p,*q;
if (i<1||i>L->length)
return ERROR;
else
{
p=&(L->elem[i-1]);
*e=*p;
q=&L->elem[L->length-1];
for (++p;p<=q;++p)
*(p-1)=*p;
--L->length;
return OK;
}
} /************************************************
**函数功能:依次对L的每个数据元素调用函数visit()。
**参数:L_线性表,i_插入的位置,e_存储数据元素。
**返回值:整型常量。
************************************************/
status ListTraverse(SqList L,status(*visit)( ElemType e))
{
statusi;
for(i=0;i<L.length;i++)
if(visit(L.elem[i])!=OK)
{
return ERROR;
break;
}
if (i==L.length)
return OK;
} /**************************
**函数功能:输出变量e的值。
**参数:e_存储数据元素。
**返回值:整型常量。
**************************/
status DisplayData(ElemType e)
{
printf("%5d",e);
return OK;
} /*************************************************
**函数功能:返回a-b的差值。
**参数:a_存储第一个数据元素,a_存储第二个数据元素。
**返回值:整型变量。
*************************************************/
status cmp(ElemType a,ElemType b)
{
return a-b;
}
/*************************************************
**函数功能:逆置线性表。
**参数:L_线性表。
**返回值:整型变量。
*************************************************/ status ListInver(SqList * L)
{
int i, d, t;
d = L->length / 2;
for (i = 0; i < d; i++)
{
t = L->elem[i];
L->elem[i] = L->elem[L->length - i - 1];
L->elem[L->length - i - 1] = t;
} return OK;
}
/*************************************************
**函数功能:统计线性表中偶数的个数。
**参数:p_存储第一个数据元素。
**返回值:整型常量。
*************************************************/
status ListStatis_Sq(SqList * L)
{//统计线性表中偶数的个数
for(i=1;i<=L.length;i++)
{ p=elem[i-1];
If(p%2==0)
c++;
}
return c;
}
/*************************************************
**函数功能:查找倒数第i个元素。
**参数:L_线性表,i_查找位置。
**返回值:整型变量。
*************************************************/
status Findd(SqList L, status i, ElemType *e)
{
if (i<1||i>L.length)
return ERROR;
else
{
*e=L.elem[L.length - i];
return OK;
}


  • Demon_辉煌
  • ,
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
:\documents and settings\administrator\桌面\lab01\myhead.h(119) : error C2061: syntax error : identifier 'statusi'
c:\documents and settings\administrator\桌面\lab01\myhead.h(121) : error C2065: 'i' : undeclared identifier
c:\documents and settings\administrator\桌面\lab01\myhead.h(125) : error C2065: 'e' : undeclared identifier
c:\documents and settings\administrator\桌面\lab01\myhead.h(125) : error C2100: illegal indirection
c:\documents and settings\administrator\桌面\lab01\myhead.h(137) : error C2065: 'statusi' : undeclared identifier
c:\documents and settings\administrator\桌面\lab01\myhead.h(198) : error C2061: syntax error : identifier 'statusi'
c:\documents and settings\administrator\桌面\lab01\myhead.h(227) : error C2061: syntax error : identifier 'statusi'
c:\documents and settings\administrator\桌面\lab01\myhead.h(235) : error C2100: illegal indirection
c:\documents and settings\administrator\桌面\lab01\myhead.h(312) : error C2228: left of '.length' must have class/struct/union type
c:\documents and settings\administrator\桌面\lab01\myhead.h(313) : error C2065: 'p' : undeclared identifier
c:\documents and settings\administrator\桌面\lab01\myhead.h(313) : error C2065: 'elem' : undeclared identifier
c:\documents and settings\administrator\桌面\lab01\myhead.h(313) : error C2109: subscript requires array or pointer type
c:\documents and settings\administrator\桌面\lab01\myhead.h(314) : error C2065: 'If' : undeclared identifier
c:\documents and settings\administrator\桌面\lab01\myhead.h(315) : error C2146: syntax error : missing ';' before identifier 'c'
c:\documents and settings\administrator\桌面\lab01\myhead.h(315) : error C2065: 'c' : undeclared identifier 这也是错误


  • tajasn
  • &&
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
typedef 换成#define试试


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 11回复贴,共1页
<<返回c++吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示