我认为第一空应在scanf上面 应该是提示语句
如printf("please input the number you want to search\n");
第二空应为 i>=9;
由于数组元素只有九个所以要判断的是i>=9 就是说第十个即使是
跟所找的数字相等 也不算找到 应为由题意 根本不知a[10]为多少
如果是在已有n个元素的数组a中顺序查找值为x的元素,以下是实现查找的函数代码,查找成功则返回此元素的位置,否则返回-1:
int find(int a[],int n,int x)
{int i;
for(i=0;i<n&&a[i]!=x;i++);
return i<ni:-1;
}
查找表结构:以顺序表或线性链表表示
基本思想:从一端开始向另一端,逐个进行记录的关键字
和给定值的比较,若某个记录的关键字和给定值比较相等,
11/103
则查找成功;反之,若直至另一端,其关键字和给定值比
较都不等,则表明表中没有所查记录,查找不成功。
查找成功示例:
(34, 44, 43, 12, 53, 55,73, 64, 77),key = 64
查找不成功示例:
(34, 44, 43, 12, 53, 55,73, 64, 77),key = 88
对顺序表的顺序查找
typedef struct{
ElemType elem; //数据元素存储空间基址
12/103
int length; //表长度
}SSTable;
对顺序表的顺序查找
int Search_Seq(SSTable ST, KeyType key) {
// 在顺序表ST中顺序查找其关键字等于key的数据元素。
// 若找到则函数值为该元素在表中的位置否则为0
13/103
,,。
STelem[0]key = key; // “哨兵”
// 从后往前找
for (i=STlength; STelem[i]key!=key; --i);
return i; //找不到时,i为0
} // Search_Seq
哨兵的作用:免去查找过程中每一步都要检测整个表是
否查找完毕。
以上就是关于下面程序用快速顺序查找法判断数组a中是否存在某一数。全部的内容,包括:下面程序用快速顺序查找法判断数组a中是否存在某一数。、c语言顺序查找法、顺序查找:从表的一端开始逐个进行记录的关键字和给定值的比较等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)