简单问题,牛人来顺手捅了- -
有a1,a2,a3,a4,a5,a6六个数(他们同属于一个数组),求出他们里面两两差值最小的那一组。
[解决办法]
#include <limits.h>#include <stdio.h>int main(int argc, char* argv[]){ #define COUNT 6 int a[COUNT] = {12, 98, 9, 23, 34, 56}; int m = 0, n = 1; int min = (a[m] - a[n]) * (a[m] - a[n]); int i, j; int k; for(i = 0; i < COUNT; i++) for(j = 0; j < COUNT; j++) { if(i == j) continue; if(m == i && n == j) continue; if(n == i && m == j) continue; k = (a[i] - a[j]) * (a[i] - a[j]); if(min > k) { m = i; n = j; min = k; } } printf("%d, %d\n", a[m], a[n]); return 0;}
[解决办法]
只要6次就能判定了,楼上方法复杂了点,比较正统。