SaveText.Ru

Без имени
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3.  
  4. #define SIZE 100
  5.  
  6. int main()
  7. {
  8.     int amount, targ, down, up, mid, a[SIZE] = {0}, flag;
  9.     scanf("%d", &amount);
  10.     scanf("%d", &targ);
  11.     for (int i = 0; i < amount; ++i)
  12.     {
  13.         scanf("%d", &a[i]);
  14.     }
  15.     printf("Initial array:n");
  16.     for (int i = 0; i < amount; ++i)
  17.     {
  18.         printf("%d ", a[i]);
  19.     }
  20.     printf("n");
  21.     printf("Target element: %dn", targ);
  22.     down = 0;
  23.     up = amount - 1;
  24.     flag = -1;
  25.     mid = -2;
  26.     printf("Search history: ");
  27.     while (flag != mid && down <= up)
  28.     {
  29.         mid = (down + up) / 2;
  30.         printf("%d(%d) ", a[mid], mid);
  31.         if (targ > a[mid])
  32.         {
  33.             down = mid + 1;
  34.         }
  35.         else
  36.         {
  37.             if (targ < a[mid])
  38.             {
  39.                 up = mid - 1;
  40.             }
  41.             else
  42.             {
  43.                 if (targ == a[mid])
  44.                     flag = mid;
  45.             }
  46.         }
  47.     }
  48.     if (flag != mid)
  49.     {
  50.         printf("nNo target");
  51.     }
  52.     else
  53.     {
  54.         printf("nTarget is found at: %d", flag);
  55.     }
  56.     return 0;
  57. }

Share with your friends:

Print