Answer to Question #217117 in C for Manisha

Question #217117

Given a list of unsorted integers, find the pair of elements that have the smallest absolute difference between them. If there are multiple pairs, find them all.

Input Format

The first line contains a single integer , the length of the list.

The second line contains space-separated integers, .

Output Format

Output the pairs of elements with the smallest difference. If there are multiple pairs, Output any one of them.

Sample Input 0

10

-20 -3916237 -357920 -3620601 7374819 -7330761 30 6246457 -6461594 266854

Sample Output 0

-20 30

Explanation 0

(30) - (-20) = 50, which is the smallest difference.

Sample Input 1

12

-20 -3916237 -357920 -3620601 7374819 -7330761 30 6246457 -6461594 266854 -520 -470

Sample Output 1

-520 -470

Explanation 1

(-470) - (-520) = 30 - (-20) = 50, which is the smallest difference. Only the first pair is given as output.

Sample Input 2

4

5 4 3 2

Sample Output 2

2 3


1
Expert's answer
2021-07-15T01:53:38-0400
#include <math.h>
#include <stdio.h>
#include <stdlib.h>


int main(int argc, char* argv[]) {


    int i, j;
    int size;
    int* values;
    int min_difference;
    int first_number;
    int second_number;


    scanf("%d", &size);
    if (size > 0)
    {
        values = (int*)malloc(sizeof(int)* (size + 1));
        for (i = 0; i < size; i++)
            scanf("%d", &values[i]);




        if (size > 1)
        {
            min_difference = abs(values[0] - values[1]);
            first_number = values[0];
            second_number = values[1];


            for (i = 0; i < size - 1; i++)
            for (j = i + 1; j < size; j++)
            if (min_difference > abs(values[i] - values[j]))
            {
                min_difference = abs(values[i] - values[j]);
                first_number = values[i];
                second_number = values[j];
            }


            printf("%d %d\n", first_number, second_number);
        }


        free(values);
    }


    return 0;
}

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
New on Blog
APPROVED BY CLIENTS