C Program to Multi Array Sorting/Searching

How to write a C Program to Multi Array Sorting/Searching in C Programming Language ?

This C Program to Multi Array Sorting/Searching.

Solution:

  1. #include <stdio.h>
  2. int  arrayTotal[500], multiArray[10][50], arraySize, number, arrayCount, n;
  3.  
  4. void sortArrays(int arr[], int length);
  5. void printArray(int arr[], int length);
  6. void binarySearch(int arr[], int length, int item);
  7.  
  8. int main()
  9. {
  10.         printf("Enter the amount of arrays (max 10): ");
  11.         scanf("%d", &arrayCount);
  12.         printf("Enter size of arrays (max 50): ");
  13.         scanf("%d", &arraySize);
  14.         printf("\nEnter the elements for the first array...\n");
  15.        
  16.         for (int i = 0; i < arrayCount; i++) {
  17.                 printf("Now for the next array...\n");
  18.                 for (int j = 1; j <= arraySize; j++) {
  19.                         printf("%d: ", j);
  20.                         scanf("%d", &multiArray[i][- 1]);
  21.                 }
  22.         }
  23.        
  24.  
  25.         //print the double array
  26.         printf("Here is your array of arrays...\n");
  27.         for (int i = 0; i < arrayCount; i++) {
  28.                         printArray(multiArray[i], arraySize);
  29.         }
  30.  
  31.         //combine the double array into one long array and sort it
  32.         //then separate that array back into a multi array
  33.         printf("Let's sort that array of arrays...\n");
  34.         n = 0;
  35.         for (int i = 0; i < arrayCount; i++) {
  36.                 for (int j = 0; j < arraySize; j++) {
  37.                         arrayTotal[n] = multiArray[i][j];
  38.                         n++;
  39.                 }
  40.         }
  41.  
  42.         sortArrays(arrayTotal, arraySize*arrayCount);
  43.  
  44.         n = 0;
  45.         for (int i = 0; i < arrayCount; i++) {
  46.                 for (int j = 0; j < arraySize; j++) {
  47.                         multiArray[i][j] = arrayTotal[n];
  48.                         n++;
  49.                 }
  50.         }
  51.        
  52.         //print the arrays again
  53.         printf("Here is your sorted array of arrays...\n");
  54.         for (int i = 0; i < arrayCount; i++) {
  55.                 printArray(multiArray[i], arraySize);
  56.         }
  57.  
  58.         //find an item in the array
  59.         printf("Let's find an item! Which item do you want to find? ");
  60.         scanf("%d", &number);
  61.         binarySearch(arrayTotal, arraySize * 2, number);
  62.  
  63.         return 0;
  64. }
  65.  
  66. //this function uses a bubble sort to sort the array in ascending order
  67. void sortArrays(int arr[], int length) {
  68.         for (int i = 0; i < length - 1; i++) {
  69.                 for (int j = 0; j < length - i - 1; j++) {
  70.                         if (arr[j] > arr[+ 1]) {
  71.                                 int temp = arr[j];
  72.                                 arr[j] = arr[+ 1];
  73.                                 arr[+ 1] = temp;
  74.                         }
  75.                 }
  76.         }
  77. }
  78.  
  79. //this is just a simple function to print the arrays
  80. void printArray(int arr[], int length) {
  81.         for (int i = 0; i < length; i++) {
  82.                 printf("%d ", arr[i]);
  83.         }
  84.         printf("\n");
  85. }
  86.  
  87.  
  88. //This is the binary search function
  89. void binarySearch(int arr[], int length, int item) {
  90.         int first = 0;
  91.         int last = length - 1;
  92.         int mid = (int)((first + last) / 2);
  93.         while (first <= last) {
  94.                 if (arr[mid] < item) {
  95.                         first = mid + 1;
  96.                 }
  97.                 else if (arr[mid] == item) {
  98.                         printf("That is element number %d\n", mid+1);
  99.                         break;
  100.                 }
  101.                 else {
  102.                         last = mid - 1;
  103.                 }
  104.                 mid = (int)((first + last) / 2);
  105.         }
  106.         if (first > last) {
  107.                 printf("That item isn't in the list...\n");
  108.         }
  109. }


Learn More :