How to find the maximum difference between two successive elements in an int array with C

1 Answer

0 votes
#include <stdio.h>
#include <stdlib.h>

int compare(const void *a, const void *b) {
    return (*(int*)a - *(int*)b);
}

int maximumGap(int* arr, size_t size) {
    int gap = 0;

    if (size == 0) {
        return 0;
    }

    // Sort the array in ascending order
    qsort(arr, size, sizeof(int), compare);

    for (size_t i = 0; i < size - 1; i++) {
        // Calculate the difference between consecutive elements
        int diff = arr[i + 1] - arr[i];

        if (diff > gap) {
            gap = diff;
        }
    }

    // Return the largest gap
    return gap;
}

int main() {
    int arr[] = {1, 3, 5, 9, 11, 13}; // 5, 9 -> 4
    size_t size = sizeof(arr) / sizeof(arr[0]);

    printf("%d", maximumGap(arr, size));

    return 0;
}



 
/*
 
4
 
*/

 



answered Jan 8, 2025 by avibootz
...