Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Lars Pedersen debug2
- original author: Lars Pedersen
- debugger: Kuo, Hsiang-Yu
- source code: https://www.facebook.com/groups/prog11/permalink/2290376831033845/
- */
- #include <stdio.h>
- #include <stdlib.h>
- double *mergeArrays(double[], double[], int, int, double *);
- void printResults(double[], int, int);
- int main(void)
- {
- double *newArray = NULL;/* initialize pointer */
- double array1[] = { 1.5, 3.5, 11.5, 17.5, 37.5 };
- int array1Size = sizeof(array1) / sizeof(double);
- double array2[] = { 2.1, 12.4, 14.6, 48.2, 50.5 };
- int array2Size = sizeof(array2) / sizeof(double);
- double array3[] = { 1.5, 3.2, 11.6, 17.2, 37.2, 51.7, 53.5 };
- int array3Size = sizeof(array3) / sizeof(double);
- double array4[] = { 2.1, 12.4, 14.6, 48.2, 50.5 };
- int array4Size = sizeof(array4) / sizeof(double);
- double array5[] = { 1.5, 3.5, 11.5, 17.5, 37.5 };
- int array5Size = sizeof(array5) / sizeof(double);
- double array6[] = { 2.1, 12.5, 14.5, 48.5, 50.5, 52.5, 54.5 };
- int array6Size = sizeof(array6) / sizeof(double);
- printf("mergeArrays(array1, array2, array1Size, array2Size, newArray)\n");
- mergeArrays(array1, array2, array1Size, array2Size, newArray);
- printf("\n");
- printf("mergeArrays(array3, array4, array3Size, array4Size, newArray)\n");
- mergeArrays(array3, array4, array3Size, array4Size, newArray);
- printf("\n");
- printf("mergeArrays(array5, array6, array5Size, array6Size, newArray)\n");
- mergeArrays(array5, array6, array5Size, array6Size, newArray);
- printf("\n");
- double *d1 = NULL;
- printf("d1 = mergeArrays(array5, array6, array5Size, array6Size, newArray)\n");
- d1 = mergeArrays(array5, array6, array5Size, array6Size, newArray);
- printf("a[0]: %.2f \n", d1[0]);
- printf("\n");
- printf("printResults(d1, array5Size, array6Size)\n");
- printResults(d1, array5Size, array6Size);/* only print out mergeArrays(array5, array6, array5Size, array6Size, newArray); */
- printf("\n");
- free(newArray);
- system("pause");
- return 0;/* main function must return 0 */
- }
- double *mergeArrays(double a[], double b[], int sizeOfArray1, int sizeOfArray2, double *newArray)
- {
- newArray = (double *)malloc((sizeOfArray1 + sizeOfArray2) * sizeof(double));
- int i = 0, j = 0, k = 0;
- while (i < sizeOfArray1 && j < sizeOfArray2)
- {
- if (a[i] < b[j])
- {
- newArray[k] = a[i];
- i++, k++;
- }
- else if (a[i] > b[j])
- {
- newArray[k] = b[j];
- j++, k++;
- }
- else
- {
- newArray[k] = a[i];
- i++, j++, k++;
- }
- }
- while (i < sizeOfArray1 || j < sizeOfArray2)
- {
- if (i < sizeOfArray1)
- {
- newArray[k] = a[i];
- i++, k++;
- }
- if (j < sizeOfArray2)
- {
- newArray[k] = b[j];
- j++, k++;
- }
- }
- for (int i = 0; i < (sizeOfArray1 + sizeOfArray2); i++)
- {
- printf("%.2f, ", newArray[i]);
- }
- printf("\n");
- return newArray;
- }
- void printResults(double newArray[], int sizeOfArray1, int sizeOfArray2)
- {
- for (int i = 0; i < (sizeOfArray1 + sizeOfArray2); i++)
- {
- printf("%.2f, ", newArray[i]);
- }
- printf("\n");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement