返回值 问题
程序代码:
#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外,
大家给看看。