C语言题:给定一个整型的数组,找出里面两个数最小的差值是多少

示例 1:
比如[1,3,4,11,8] 那么输出的结果为1 ,因为4-3 的差值为1,是最小的。

#include "stdio.h"

#define N 5

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

    int a[N]={1,3,4,11,8},i,j,k,t;

    for(i=0;i<N;i++)

        for(j=i+1;j<N;j++){

            if(t=a[i]-a[j],t<0)

                t=-t;

            if(k>t || i==0)

                k=t;

        }

    printf("The result is %d\n",k);

    return 0;

}

扩展资料:

数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。一个数组中的所有元素具有相同的数据类型

数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。数组中的元素存储在一个连续性的内存块中,并通过索引来访问。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-21
#include "stdio.h"
#define N 5
int main(int argc,char *argv[]){
int a[N]={1,3,4,11,8},i,j,k,t;
for(i=0;i<N;i++)
for(j=i+1;j<N;j++){
if(t=a[i]-a[j],t<0)
t=-t;
if(k>t || i==0)
k=t;
}
printf("The result is %d\n",k);
return 0;
}

运行结果:

第2个回答  2019-04-19
排序后,从前向后遍历,比较a[i+1]-a[i]的大小,取最小值即可
第3个回答  2019-04-19
用一个函数很好完成的
相似回答