Advertisement
KuoHsiangYu

Lars Pedersen debug2

Oct 31st, 2018
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.97 KB | None | 0 0
  1. /*
  2. Lars Pedersen debug2
  3. original author: Lars Pedersen
  4. debugger: Kuo, Hsiang-Yu
  5. source code: https://www.facebook.com/groups/prog11/permalink/2290376831033845/
  6. */
  7.  
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10.  
  11. double *mergeArrays(double[], double[], int, int, double *);
  12. void printResults(double[], int, int);
  13.  
  14. int main(void)
  15. {
  16.  
  17.     double *newArray = NULL;/* initialize pointer */
  18.  
  19.     double array1[] = { 1.5, 3.5, 11.5, 17.5, 37.5 };
  20.     int array1Size = sizeof(array1) / sizeof(double);
  21.     double array2[] = { 2.1, 12.4, 14.6, 48.2, 50.5 };
  22.     int array2Size = sizeof(array2) / sizeof(double);
  23.  
  24.     double array3[] = { 1.5, 3.2, 11.6, 17.2, 37.2, 51.7, 53.5 };
  25.     int array3Size = sizeof(array3) / sizeof(double);
  26.     double array4[] = { 2.1, 12.4, 14.6, 48.2, 50.5 };
  27.     int array4Size = sizeof(array4) / sizeof(double);
  28.  
  29.     double array5[] = { 1.5, 3.5, 11.5, 17.5, 37.5 };
  30.     int array5Size = sizeof(array5) / sizeof(double);
  31.     double array6[] = { 2.1, 12.5, 14.5, 48.5, 50.5, 52.5, 54.5 };
  32.     int array6Size = sizeof(array6) / sizeof(double);
  33.  
  34.     printf("mergeArrays(array1, array2, array1Size, array2Size, newArray)\n");
  35.     mergeArrays(array1, array2, array1Size, array2Size, newArray);
  36.     printf("\n");
  37.  
  38.     printf("mergeArrays(array3, array4, array3Size, array4Size, newArray)\n");
  39.     mergeArrays(array3, array4, array3Size, array4Size, newArray);
  40.     printf("\n");
  41.  
  42.     printf("mergeArrays(array5, array6, array5Size, array6Size, newArray)\n");
  43.     mergeArrays(array5, array6, array5Size, array6Size, newArray);
  44.     printf("\n");
  45.  
  46.     double *d1 = NULL;
  47.     printf("d1 = mergeArrays(array5, array6, array5Size, array6Size, newArray)\n");
  48.     d1 = mergeArrays(array5, array6, array5Size, array6Size, newArray);
  49.     printf("a[0]: %.2f \n", d1[0]);
  50.     printf("\n");
  51.  
  52.     printf("printResults(d1, array5Size, array6Size)\n");
  53.     printResults(d1, array5Size, array6Size);/* only print out mergeArrays(array5, array6, array5Size, array6Size, newArray); */
  54.     printf("\n");
  55.  
  56.     free(newArray);
  57.     system("pause");
  58.     return 0;/* main function must return 0 */
  59. }
  60.  
  61. double *mergeArrays(double a[], double b[], int sizeOfArray1, int sizeOfArray2, double *newArray)
  62. {
  63.     newArray = (double *)malloc((sizeOfArray1 + sizeOfArray2) * sizeof(double));
  64.  
  65.     int i = 0, j = 0, k = 0;
  66.     while (i < sizeOfArray1 && j < sizeOfArray2)
  67.     {
  68.         if (a[i] < b[j])
  69.         {
  70.             newArray[k] = a[i];
  71.             i++, k++;
  72.         }
  73.         else if (a[i] > b[j])
  74.         {
  75.             newArray[k] = b[j];
  76.             j++, k++;
  77.         }
  78.         else
  79.         {
  80.             newArray[k] = a[i];
  81.             i++, j++, k++;
  82.         }
  83.     }
  84.     while (i < sizeOfArray1 || j < sizeOfArray2)
  85.     {
  86.         if (i < sizeOfArray1)
  87.         {
  88.             newArray[k] = a[i];
  89.             i++, k++;
  90.         }
  91.         if (j < sizeOfArray2)
  92.         {
  93.             newArray[k] = b[j];
  94.             j++, k++;
  95.         }
  96.     }
  97.     for (int i = 0; i < (sizeOfArray1 + sizeOfArray2); i++)
  98.     {
  99.         printf("%.2f, ", newArray[i]);
  100.     }
  101.     printf("\n");
  102.     return newArray;
  103. }
  104.  
  105. void printResults(double newArray[], int sizeOfArray1, int sizeOfArray2)
  106. {
  107.     for (int i = 0; i < (sizeOfArray1 + sizeOfArray2); i++)
  108.     {
  109.         printf("%.2f, ", newArray[i]);
  110.     }
  111.     printf("\n");
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement