home *** CD-ROM | disk | FTP | other *** search
/ Light / Light_Vol.1_August_1992_Datasphere_Publications_Disk_1_of_2_Side_A.d64 / search.c < prev    next >
Text File  |  2023-02-26  |  2KB  |  92 lines

  1. /*
  2.  
  3.    Binary Search on a sorted array of names
  4.  
  5. */
  6.  
  7.  
  8. #include "stdio.h"
  9. #include "ctype.h"
  10. #define NUM 5
  11. #define clear_screen printf("\223")
  12.  
  13. char *names[5] = {SHIFT-+} "Andy",
  14.                    "Bob",
  15.                    "Chris",
  16.                    "Kerry",
  17.                    "Pete"  {SHIFT--};
  18.  
  19.  
  20. int value,number,top,bottom,middle;
  21. char *search_name;
  22.  
  23. void search()
  24. {SHIFT-+}
  25.    while(strncmp(names[middle],search_name,strlen(names[middle])) != 0
  26.                       && (bottom-top) >1)
  27.  
  28.        {SHIFT-+}
  29.        value = strncmp(names[middle],search_name,strlen(names[middle]));
  30.  
  31.        if (value == -1)
  32.            top = middle;
  33.        else
  34.            bottom = middle;
  35.  
  36.        middle = (top+bottom)/2;
  37.        {SHIFT--}
  38. {SHIFT--}
  39.  
  40. main()
  41. {SHIFT-+}
  42.    int x;
  43.    char temp,choice;
  44.  
  45.    search_name = (char *) alloc(10);
  46.  
  47.    clear_screen;
  48.    for(x=0; x<5; x++)
  49.    {SHIFT-+}
  50.        printf("\nname[%u] = %s",x,names[x]);
  51.    {SHIFT--}
  52.  
  53.    do
  54.    {SHIFT-+}
  55.        printf("\n\nEnter name to be searched for");
  56.        printf("\n(end to end) :");
  57.        scanf("%s",search_name);
  58.  
  59.        bottom = NUM;
  60.        top =0;
  61.        middle = (top+bottom)/2;
  62.        search();
  63.  
  64.        if (strncmp(names[middle],search_name,strlen(names[middle])) == 0)
  65.            {SHIFT-+}
  66.            printf("\n\nFound %s at position %d",names[middle],middle);
  67.            {SHIFT--}
  68.        else
  69.            {SHIFT-+}
  70.            printf("\nNot found %s",search_name);
  71.            {SHIFT--}
  72.    {SHIFT--}
  73.    while (strncmp("end",search_name,3) !=0);
  74.  
  75.    printf("\n\nPress... B for Bubble sort or,");
  76.    printf("\n       any for Menu");
  77.  
  78.    temp=getchar();
  79.    choice=toupper(temp);
  80.  
  81.    if (choice == 'B')
  82.        {SHIFT-+}
  83.        printf("\n\nBubble, Bubbles on their way...");
  84.        exec("bubble");
  85.        {SHIFT--}
  86.    else
  87.        {SHIFT-+}
  88.        printf("\n\nLoading Menu");
  89.        exec("c-menu");
  90.        {SHIFT--}
  91. {SHIFT--}
  92.  
  93.