void InPutList(int L[ ]); //根据输入数据构建顺序表L
int LocateElem(int L[ ], int e); //在顺序表L中查找元素e
int main()
{
InPutList(L);
int e;
int pos;
scanf("%d",&e);
pos = LocateElem(L,e);
printf("The position of %d in SequenceList L is %d\n",e,pos);
return 0;
}
void InPutList(int L[ ])
{
int e;
int i=0;
scanf("%d",&e);
while(e!=-1)
{
L[i++]=e;
scanf("%d",&e);
}
}
int LocateElem(int L[ ], int e)
{//请在下面给出本函数的完整代码,实现在L中查找e,查找成功返回其序号,否则返回0
}
C语言中,子函数中无法正确获取数组大小,因为传进来的是数组第一个元素的地址,长度相当于为1,所以必须把数组的长度也要传进来:
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
int L[MAXSIZE]; //顺序表L
void InPutList(int L[]); //根据输入数据构建顺序表L
int LocateElem(int L[], int size, int e); //在顺序表L中查找元素e
int main()
{
InPutList(L);
int e;
int pos;
scanf("%d", &e);
int size = sizeof(L) / sizeof(int);
pos = LocateElem(L, size, e);
printf("The position of %d in SequenceList L is %d\n", e, pos);
return 0;
}
void InPutList(int L[])
{
int e;
int i = 0;
scanf("%d", &e);
while (e != -1)
{
L[i++] = e;
scanf("%d", &e);
}
}
int LocateElem(int L[], int size, int e)
{
//请在下面给出本函数的完整代码,实现在L中查找e,查找成功返回其序号,否则返回0
if (size == 0)
{
return 0;
}
for (int i = 0; i < size; i++)
{
if (L[i] == e)
{
return i;
}
}
return 0;
}