找最接近数并求差值

题目内容: 设计算法找出整数数组a[n](n<=50)中相差最小的两个元素(称为最接近数)的差。

输入格式: 第一行为数组大小n,第二行为n个数组元素,元素之间用空格分开

输出格式: 最接近数的差

输入样例:

5

65 38 26 75 40

输出样例:

 1 #include <iostream>
 2 using namespace std;
 3 int main() {
 4     int a[10], n, i, j, k, temp;
 5     cin >> n;
 6     for (i = 0; i < n; i++)    cin >> a[i];
 7     int min, dif;
 8     for (i = 0; i < n-1; i++) {
 9         min = a[i];
10         k = i;
11         for (j = i + 1; j < n; j++) {
12             if (min > a[j]) {
13                 min = a[j];
14                 k = j;
15             }
16         }
17             if (k != i) {
18                 temp = a[i];
19                 a[i] = a[k];
20                 a[k] = temp;
21             }
22     }
23     min = a[1] - a[0];
24     for (i = 1; i < n - 1; i++) {
25         dif = a[i + 1] - a[i];
26         if (min > dif) min = dif;
27     }
28     cout << min;
29     return 0;
30 }

交mocc的时候把输入语句和注释都删掉了,凑合看看

posted @ 2020-05-12 01:59  打不死的小王  阅读(608)  评论(0编辑  收藏  举报