计算机需要沉淀 2021-09-14 09:39 采纳率: 100%
浏览 49
已结题

这个程序最后的LocateElem函数为什么执行不了?

#include
#define OVERFLOW -2
#define OK 1
#define ERROR 0
#define MAXSIZE 100
typedef int Status;
typedef int ElemType;
using namespace std;
//构建结构体
typedef struct{
ElemType *elem;
int length;
}SqList;
//构建线性表
Status InitList(SqList &L){
L.elem=new ElemType[MAXSIZE];
if(!L.elem) exit (OVERFLOW);
L.length=0;
return OK;
}
//在表中插入元素
Status ListInsert_Sq(SqList &L,int i,ElemType e){
int j;
if(i<1||i>L.length+1)
return ERROR;
if(L.length==MAXSIZE)return ERROR;
for(j=L.length-1;j>=i-1;j--)
L.elem[j+1]=L.elem[j];
L.elem[i-1]=e;
++L.length;
return OK;
}
//遍历表
Status ListTraverse(SqList L){
ElemType *p;
int i;
p=L.elem;
for(i=1;i<=L.length;i++)
printf("%d ",*p++);
printf("\n");
return OK;
}
//删除表中某一元素
Status ListDelete(SqList &L,int i){
int j;
if(i<1||i>L.length)return ERROR;
for(j=i;j<=L.length-1;j++)
L.elem[j-1]=L.elem[j];
L.length--;
return OK;
}
//获得元素
Status GetElem(SqList L,int i,ElemType &e){
if(i<1||i>L.length) return ERROR;
e=L.elem[i-1];
printf("%d",e);
return OK;
}
//查找表中元素
int LocateElem(SqList L,ElemType e){
int i;
for(i=0;i<L.length;i++)
if(e==L.elem[i])return (i+1);
printf("%d",i+1);
return 0;
}
int main()
{
SqList L;
int i;
i=InitList(L);
int a[5]={1,2,3,4,5};
for(i=1;i<=5;i++)
ListInsert_Sq(L,i,a[i-1]);
ListTraverse(L);
//ListDelete(L,2);
//ListTraverse(L);
//i=3;
//GetElem(L,i,a[i-1]);
LocateElem(L,3);
return 0;
}

  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2021-09-14 09:44
    关注

    为什么你认为运行不了,是printf语句没有输出东西吗?前面if能找到元素,直接return掉了,所以printf是不会被执行的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月22日
  • 已采纳回答 9月14日
  • 创建了问题 9月14日

悬赏问题

  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真