问题描述
  给定n个数,请找出其中相差(差的绝对值)最小的两个数,输出它们的差值的绝对值。
输入格式
  输入第一行包含一个整数n
  第二行包含n个正整数,相邻整数之间使用一个空格分隔。
输出格式
  输出一个整数,表示答案。
样例输入
5
1 5 4 8 20
样例输出
1
样例说明
  相差最小的两个数是5和4,它们之间的差值是1。
样例输入
5
9 3 6 1 3
样例输出
0
样例说明
  有两个相同的数3,它们之间的差值是0.
数据规模和约定
  对于所有评测用例,2 ≤ n ≤ 1000,每个给定的整数都是不超过10000的正整数。
代码:
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
    int Min=100000;//定义初始比较值
    int i, j, k = 0;
    int a[1005], b[1005];
    int N;
    cin >> N;
    for (i = 0; i < N; i++)
        cin >> a[i];
    for (i = 0; i < N; i++)
    {
        for (j = 0; j < N; j++)
        {
            if (i != j)
            {
                int gapvalue=abs(a[i] - a[j]);//计算差值
                if (Min>gapvalue)
                {
                    Min = gapvalue;//比较最小值
                }
            }
        }
    }
    cout << Min << endl;
    return 0;
}
#include<iostream>
#include<algorithm>
#include<vector>



using namespace std;

int main(){
    vector<int> list;
    int N;
    cin>>N;

    int temp;
    while(N--){
        cin>>temp;
        list.push_back(temp);
    }

    int mini = 10010;
    for(int i=0;i<list.size();i++){
        for(int j=i+1; j<list.size(); j++){
            int gap = abs(list[i]-list[j]);
            if(mini>gap){
                mini = gap;
            }
        }
    }

    cout<<mini;

    return 0;
}

 

版权声明:本文为gcter原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/gcter/p/8475529.html