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

有一个整数数组,请求出两两之差绝对值最小的值

2014-10-01 10:47 323 查看
这个题目其实和那个左边减去右边的差最大那个题目类似,只是这里要多加几个判断,代码如下:

[html] view
plaincopy

// maxAndmin.cpp : 定义控制台应用程序的入口点。  

//  

  

#include "stdafx.h"  

#include <iostream>  

#include <cmath>  

using namespace std;  

  

int getMax(int a[],int len)  

{  

    int max=a[0];  

    int maxDiff=0;  

    int diff=a[0]-a[1];  

    for (int i=2;i<len;i++)  

    {  

        if (a[i-1]>max)  

        {  

            max=a[i-1];  

        }  

        diff=max-a[i];  

        if (diff>maxDiff)  

        {  

            maxDiff=diff;  

        }  

          

    }  

    return maxDiff;  

}  

  

int getMin(int a[],int len)  

{  

    int min=a[0];  

    int diff=a[0]-a[1];  

    if(diff<0)  

    {  

        diff=-diff;  

    }  

    int minDiff=diff;  

    for (int i=2;i<len;i++)  

    {  

        if (a[i-1]<abs(min))  

        {  

            min=a[i-1];  

        }  

        diff=min-a[i];  

        if (diff<0)  

        {  

            diff=-diff;  

        }  

        if (diff<minDiff)  

        {  

            minDiff=diff;  

        }  

    }  

    return minDiff;  

}  

  

  

int _tmain(int argc, _TCHAR* argv[])  

{  

    int a[]={-5,-1,11,6,-2};  

    int len=sizeof(a)/sizeof(int);  

    cout<<getMin(a,len);  

  

    system("pause");  

    return 0;  

}  

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