思路:
先对数组进行排序,排序后的结果:a0 a1 a2 .... an
在{|a0-a1| |a1-a2| |a2-a3| .... |an-1-an|}中找到最小值
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int main()
{
int A[20] = { 1,12,20,7,3,17,4 };
int size = 7;
for (int i = 0; i < size - 1; i++)//冒泡排序
{
for (int j = size - 1; j > i; j--)
{
if (A[j] < A[j - 1])
{
int t = A[j];
A[j] = A[j - 1];
A[j - 1] = t;
}
}
}
int min = abs(A[0] - A[1]);
int x = A[0] , y = A[1];
for (int i = 1; i < size-1; i++)
{
if (abs(A[i] - A[i + 1]) < min)
{
x = A[i];
y = A[i + 1];
min = abs(A[i] - A[i + 1]);
}
}
printf("两个元素是%d %d,最小值=%d\n" , x , y , min);
return 0;
}