题目描述
已知元素从小到大排列的两个数组x[]和y[], 请写出一个程序算出两个数组彼此之间差的绝对值中最小的一个,这叫做数组的距离 。
输入:第一行为两个整数m, n(1≤m, n≤1000),分别代表数组f[], g[]的长度。
第二行有m个元素,为数组f[]。
第三行有n个元素,为数组g[]。
输出:数组的最短距离。
样例输入 Copy
5 5 1 2 3 4 5 6 7 8 9 10
样例输出 Copy1
程序代码
#include<stdio.h>
#include<limits.h>
#include<math.h>
int main(){int m,n;scanf("%d%d",&m,&n);//输入两个数组的长度int f[m],g[n];for(int i=0;i<m;i++)scanf("%d",&f[i]);for(int i=0;i<n;i++)scanf("%d",&g[i]);//读入数组元素int min=INT_MAX;for(int i=0;i<m;i++){//找出数组彼此之间差的最小绝对值for(int j=0;j<n;j++){int x=abs(f[i]-g[j]);if(min>x)min=x;}}printf("%d",min);//输出最小值return 0;
}