1. 程式人生 > >CCF————201712-1(最小差值)

CCF————201712-1(最小差值)

問題描述

  給定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<stdio.h>
#include <stdlib.h>
int main(){
    int num;//輸入數
    int mix=1<<30; // 存最大值
    int test ; //中間數
    scanf("%d\n",&num);
    int a[num];//定義陣列大小
    for (int i = 0; i <num ; i++) {
        scanf("%d",&a[i]);
    }

    for (int j = 0; j <num ; j++) {
        for (int i = 0; i < num; i++) {
            if (i != j) {
                test = abs(a[j] - a[i]); //求絕對值
                if (test <= mix) {
                    mix = test;
                }
            }
        }
    }
    printf("%d",mix);
    return 0;
}