问题遇到的现象和发生背景
顺序表查找第i个值,返回值没有,但是我已经加返回值了
用代码块功能插入代码,请勿粘贴截图
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define ElemType int
#define MAXSIZE 100 /*此处的宏定义常量表示线性表可能达到的最大长度*/
typedef struct
{
ElemType elem[MAXSIZE]; /*线性表占用的数组空间*/
int last; /*记录线性表中最后一个元素在数组elem[ ]中的位置(下标值),空表置为-1*/
}SeqList;
int Locate(SeqList L, ElemType e)
{
int i=0; /*i为扫描计数器,初值为0,即从第一个元素开始比较*/
while ((i<=L.last)&&(L.elem[i]!=e)) /*顺序扫描表,直到找到值为key的元素, 或扫描到表尾而没找到*/
i++;
if (i<=L.last)
return(i+1); /*若找到值为e的元素,则返回其序号*/
else
return(-1); /*若没找到,则返回空序号*/
}
void main()
{
SeqList l;
int p,q,r;
int i;
printf("请输入线性表的长度:");
scanf("%d",&r);
l.last = r-1;
printf("请输入线性表的各元素值:\n");
for(i=0; i<=l.last; i++)
{
scanf("%d",&l.elem[i]);
}
printf("请输入要查找的元素值:\n");
scanf("%d",&q);
p=Locate(l,q);
if(p == -1)
printf("在此线性表中没有该元素!\n");
else
printf("该元素在线性表中的位置为:%d\n",p);
}
运行结果及报错内容
[Error] '::main' must return 'int'
我的解答思路和尝试过的方法
locate已经有返回值了,为什么主函数返回值返回不出来