内容发布更新时间 : 2024/12/27 9:47:32星期一 下面是文章的全部内容请认真阅读。
软件技术基础上机实验报告
罗子建2016010902012
上机实验五
5.1
一、 程序流程说明——有条理的文字或流程图* 二、 程序代码
#include
int data[MAXNUM]; int length;
}list_type;
void createlist(list_type *lp) { }
int sort(list_type *list,intkey) {
int i;
for (i = 0; i
if (list->data[i] != key) { }
i++;
int i, elem; lp->length = 0;
printf(\); for (i = 0; i scanf_s(\, &elem); if (elem == -1) break; lp->data[i] = elem; lp->length++; } } else { } printf(\成功查找\\n\); break; return i+1; int binsearch(list_type *list, intkey) { } int main() { int m; int i; list_type list; createlist(&list); printf(\请输入你想顺序查找的元素值:\); scanf_s(\, &m); i=sort(&list, m); printf(\你所查找的元素位置为:%d\,i); printf(\请输入你想二分查找的元素值:\); scanf_s(\, &m); i = binsearch(&list, m); printf(\你所查找的元素位置为:%d\, i); while (low <= high) { } mid = (low + high) / 2; if (key elseif (key>list->data[mid]) { } else { } return mid; low = mid + 1; high = mid - 1; int low = 0, mid, high = list->length - 1; } 三、 测试数据 please input datas of the list 3 10 13 17 40 43 50 70 -1 请输入你想顺序查找的元素值:43 成功查找 你所查找的元素位置为:6请输入你想二分查找的元素值:5 你所查找的元素位置为:1请按任意键继续. . . 四、上机时遇到的问题(可分为编译问题和逻辑问题) 对于二分查找,我之前使用的mid 一直不能求解到最正确的位置,后来通过编译调试得到正确的答案。