返回值 问题
程序代码:#include <stdio.h>
#define maxsize 100
typedef struct seqlist
{
int data[maxsize];
int len;
};
//顺序查找非递归
int seqsearch(seqlist l,int key)
{
int k=l.len-1;
while(k>=0&&l.data[k]!=key)
k--;
return k;
}
int seqsearch(seqlist l,int n,int key)
{
int k=0;
if(-1==n)
k=-1;
else
if(l.data[n]==key)
k=n;
else
k=seqsearch(l,n-1,key);
return k;
}
void main()
{
int i,k;
int key;
seqlist l;
printf(" please input the length of list:");
scanf("%d",&l.len);
printf("please input the data of list:\n");
for (i=0;i<l.len;i++)
scanf("%d",&l.data[i]);
do
{
printf("请输入待查找的关键字(-1 退出):");
scanf("%d",&key);
if(key==-1) break;
if((k=seqsearch(l,l.len,key)!=-1))
printf("%d 在线性表的第%d个位置。\n",key,k);
else
printf("未找到指定元素!\n");
}
while(key!=-1);
}
为什么在search()带回的值不管是多少,k总是1在main()中除-1外,大家给看看。









`````
`````