Chinaunix首页 | 论坛 | 博客
  • 博客访问: 97603
  • 博文数量: 29
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 476
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-07 15:10
文章分类

全部博文(29)

文章存档

2011年(1)

2008年(28)

我的朋友

分类: C/C++

2008-08-17 15:04:21

   已知两个元素从小到大排列的数组x[]与y[], 请编写一个程序,算出两个数组元素彼此之间差的绝对值最小的一个数. 此值称作数组的距离.
------------------------------------------------------------------------------------
 

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

int main()
{
    int x[] = {1,6,8,9,15};
    int y[] = {3,11,12,18};
    int min = abs(x[0]-y[0]);    //最短距离

    int nx = sizeof(x)/sizeof(int);
    int ny = sizeof(y)/sizeof(int);
    int px = 0,py = 0;           
    while(px<nx && py<ny)
    {
        if(x[px]<y[py])
        {
            if(min > abs(x[px]-y[py]))
                min = abs(x[px]-y[py]);
            px++;
        }
        if(x[px]>y[py])
        {
            if(min > abs(x[px]-y[py]))
                min = abs(x[px]-y[py]);
            py++;
        }
        if(x[px]==y[py])
        {
            min = 0;
            break;
        }
    }

    printf("x,y最短距离:%d\n",min);

    return 0;
}

阅读(951) | 评论(0) | 转发(0) |
0

上一篇:等值数目

下一篇:等值首尾和

给主人留下些什么吧!~~