您的位置:首页 > 编程语言 > C语言/C++

山东理工大学ACM平台题答案关于C语言 1228 两数组最短距离

2013-12-14 16:22 357 查看

两数组最短距离


Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^

题目描述

已知元素从小到大排列的两个数组x[]和y[],请写出一个程序算出两个数组彼此之间差的绝对值中最小的一个,这叫做数组的距离。

输入

第一行为两个整数m, n(1≤m, n≤1000),分别代表数组f[], g[]的长度。

第二行有m个元素,为数组f[]。

第三行有n个元素,为数组g[]。

输出

数组的最短距离。

示例输入

5 5
1 2 3 4 5
6 7 8 9 10


示例输出

1

#include <stdio.h>

int abs(int n)

{

return n>0?n:-n;

}

int main()

{

int m,n,i,j,t,min;

int f[1000],g[1000];

scanf("%d %d",&m,&n);

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

scanf("%d",&f[i]);

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

scanf("%d",&g[i]);

min = abs(f[0]-g[0]);

i=0;j=0;

while(i<m)

{

if(f[i]<g[j])

{

t=abs(f[i]-g[j]);

if(t< min)

min = t;

i++;

}

else if(f[i]==g[j])

{

min=0;

break;

}

else

{

j++;

if(j>=n)

{

i++;

j=0;

}

}

}

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

return 0;

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐