How to find minimum distance between two numbers in an array with C

1 Answer

0 votes
#include <stdio.h>
#include <limits.h>
#include <math.h>

#define MIN(x, y) (((x) < (y)) ? (x) : (y))

int MinDistance(int arr[], int size, int number1, int number2) {
    int min_distance = INT_MAX;

    for (int i = 0; i < size; i++) {
        for (int j = i + 1; j < size; j++) {
            if (arr[i] == number1 && arr[j] == number2 || 
                arr[i] == number2 && arr[j] == number1) {
                min_distance = MIN(min_distance, abs(i - j));
            }
        }
    }

    return min_distance;
}

int main()
{
    int arr[] = { 2, 3, 7, 3, 3, 4, 8, 8, 8, 11, 9, 1, 3 };

    int size = sizeof(arr) / sizeof(arr[0]);

    printf("%d", MinDistance(arr, size, 3, 8));
}




/*
run:

2

*/




 



answered Aug 24, 2022 by avibootz
edited Aug 24, 2022 by avibootz
...