微信图片_20210412170217.png
    微信图片_20210412170220.png

    1. #include<stdio.h>
    2. void printarry(int a[], int length);
    3. void erfenchazhao(int a[], int e,int length);
    4. void printarry(int a[], int length) {
    5. printf("有序数组为的数:");
    6. for (int i = 0; i < length - 1; i++)
    7. {
    8. printf("%d\t", a[i]);
    9. }
    10. printf("\n");
    11. }
    12. void erfenchazhao(int a[], int e, int length) {
    13. int mid, right, left;
    14. int flag;
    15. right = 0;
    16. left = length - 1;
    17. mid = (right + left) / 2;
    18. flag = 1;
    19. while (flag) {
    20. if (right <= left) {
    21. if (a[mid] < e)
    22. {
    23. right = mid + 1;
    24. mid = (right + left) / 2;
    25. }
    26. else if (a[mid] > e) {
    27. left = mid - 1;
    28. mid = (right + left) / 2;
    29. }
    30. if (a[mid] == e)
    31. {
    32. flag = 0;
    33. printf("找到了");
    34. }
    35. }
    36. else {
    37. printf("没找到");
    38. flag = 0;
    39. }
    40. }
    41. }
    42. int main(void) {
    43. int arry[] = { 15,35,40,50,60,85,90 };
    44. int length = 7;
    45. int chazhao;
    46. printarry(arry, length);
    47. printf("请输入要查找的数:");
    48. scanf_s("%d", &chazhao);
    49. fflush(stdin);
    50. erfenchazhao(arry, chazhao, length);
    51. return 0;
    52. }