解题思路:
由题意可知,这里的最小差值可以是不相邻的两个数的差值,因此我们先将所有的数按从小到大的顺序进行排序,然后再用另一个数组存储排序后相邻两个数的差值,再对这个存储了差值的数组进行排序,最终此数组第一个数就是最小差值,输出这个数。
代码:
#include"cstdio"
#include"math.h"
int a[1001];
int b[1001];
int main()
{
int n,temp;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(int o=0;o<n-1;o++)
{
for(int p=0;p<n-1-o;p++)
{
if(a[p]>a[p+1])
{
temp=a[p];
a[p]=a[p+1];
a[p+1]=temp;
}
}
}
for(int j=0;j<n-1;j++)
{
b[j]=fabs(a[j+1]-a[j]);
}
for(int o=0;o<n-2;o++)
{
for(int p=0;p<n-2-o;p++)
{
if(b[p]>b[p+1])
{
temp=b[p];
b[p]=b[p+1];
b[p+1]=temp;
}
}
}
printf("%d",b[0]);
}