Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Lars Pedersen debug1
- //original author: Lars Pedersen
- //debugger: Kuo, Hsiang-Yu
- //source code: https://www.facebook.com/groups/prog11/permalink/2290376831033845/
- #include <stdio.h>
- #include <stdlib.h>
- void mergeArrays(double[], double[], int, int, double *);
- void printResults(double *, int, int);
- int main(void) {
- double *newArray = NULL;
- 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);
- newArray = (double *)malloc((array1Size + array2Size) * sizeof(double));
- mergeArrays(array1, array2, array1Size, array2Size, newArray);
- newArray = (double *)malloc((array3Size + array4Size) * sizeof(double));
- mergeArrays(array3, array4, array3Size, array4Size, newArray);
- newArray = (double *)malloc((array5Size + array6Size) * sizeof(double));
- mergeArrays(array5, array6, array5Size, array6Size, newArray);
- printf("a[0]: %.2lf \n", newArray[0]);
- printResults(newArray, array1Size, array2Size);
- free(newArray);
- system("pause");
- return 0;
- }
- void mergeArrays(double a[], double b[], int sizeOfArray1, int sizeOfArray2, double(*newArray)) {
- 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("%.2lf, ", newArray[i]);
- }
- printf("\n");
- }
- void printResults(double newArray[], int sizeOfArray1, int sizeOfArray2) {
- for (int i = 0; i < (sizeOfArray1 + sizeOfArray2); i++) {
- printf("%.2lf, ", newArray[i]);
- }
- printf("\n");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement