算法:最接近数问题

2、最接近数问题:
题目内容:
设计算法找出整数数组a[n](n<=50)中相差最小的两个元素(称为最接近数)的差。
输入格式:
第一行为数组大小n,第二行为n个数组元素,元素之间用空格分开
输出格式:
最接近数的差
输入样例:
5
65 38 26 75 40
输出样例:
2

#include <stdio.h>
#include <math.h>

#define MAX 50

int main() {

int n,i = 0;
int a[MAX];
int x,y;
scanf("%d",&n);
int b = n;
while(n--) {
    scanf("%d",&a[i]);
    i ++;
}

int dvalue[MAX][MAX];


for( x = 0; x < b; x ++) {
    for( y = 0; y < b; y++) {

        dvalue[x][y] = abs(a[x]-a[y]);
    }
}


int min = dvalue[0][1];
for( x = 0; x < b; x ++) {
    for( y = 0; y < b; y++) {
        if( x == y)
            continue;
        if( dvalue[x][y] < min) {
            min = dvalue[x][y];
        }
    }
}

printf("%d\n",min);

return 0;

}

猜你喜欢

转载自blog.csdn.net/juliet0727/article/details/88380815