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