From 23c8f197fcdb5ec8b1bced1fc3247a7b8c0d7c7b Mon Sep 17 00:00:00 2001 From: xtaodada Date: Thu, 26 May 2022 05:31:57 +0000 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3?= =?UTF-8?q?=20''?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ex7_1.c | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 ex7_1.c diff --git a/ex7_1.c b/ex7_1.c new file mode 100644 index 0000000..e8019a4 --- /dev/null +++ b/ex7_1.c @@ -0,0 +1,78 @@ +#include +#include +#include +#define MAX 100 + +void Search1(int a[], int n, int key){ + int i=0; + a[n] = key; + while(a[i] != key){ + i++; + } + if(i == n){ + printf("\n未找到。\n\n"); + } else { + printf("\n此数在第 %d 位。\n\n", i + 1); + } +} +void Search2(int a[], int n, int key){ + int low = 0, high = n-1, mid; + while(low <= high){ + mid = (low + high) / 2; + if(a[mid] == key){ + printf("\n此数在第 %d 位。\n\n", mid + 1); + return; + } else if (a[mid] > key){ + high = mid - 1; + } else { + low = mid + 1; + } + } + printf("\n未找到。\n\n"); +} +int main(){ + int n, choice, e, a[MAX]; + + for(;;){ + printf("\t\t1.无序线性表的顺序查找\n"); + printf("\t\t2.有序线性表的二分查找\n"); + printf("\t\t0.退出\n"); + + printf("请选择:"); + scanf("%d",&choice); + if(choice==0) break; + switch (choice) { + case 1: + printf("请输入需要输入的元素个数:"); + scanf("%d",&n); + for(int i=0;i