读书人

简单有关问题牛人来顺手捅了-

发布时间: 2012-10-11 10:16:10 作者: rapoo

简单问题,牛人来顺手捅了- -
有a1,a2,a3,a4,a5,a6六个数(他们同属于一个数组),求出他们里面两两差值最小的那一组。

[解决办法]

C/C++ code
#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次就能判定了,楼上方法复杂了点,比较正统。

读书人网 >C语言

热点推荐