#include <stdio.h> #include <limits.h> #include <stdlib.h>

// 计算距离D函数 int calculateDistance(int a, int b, int c) { return abs(a - b) + abs(b - c) + abs(c - a); }

// 输出最小距离及对应的三元组函数 void findMinDistance(int s1[], int s2[], int s3[], int n1, int n2, int n3) { int minDistance = INT_MAX; int minA, minB, minC;

// 遍历所有可能的三元组
for (int i = 0; i < n1; i++) {
    for (int j = 0; j < n2; j++) {
        for (int k = 0; k < n3; k++) {
            int distance = calculateDistance(s1[i], s2[j], s3[k]);
            if (distance < minDistance) {
                minDistance = distance;
                minA = s1[i];
                minB = s2[j];
                minC = s3[k];
            }
        }
    }
}

// 输出最小距离及对应的三元组
printf('最小距离为:%d\n', minDistance);
printf('三元组为:%d, %d, %d\n', minA, minB, minC);

}

int main() { int s1[] = {-1, 0, 9}; int s2[] = {-25, -10, 10, 11}; int s3[] = {2, 9, 17, 30, 41}; int n1 = sizeof(s1) / sizeof(s1[0]); int n2 = sizeof(s2) / sizeof(s2[0]); int n3 = sizeof(s3) / sizeof(s3[0]);

findMinDistance(s1, s2, s3, n1, n2, n3);

return 0;

}

// 代码解释: // 这段代码是一个用于计算三个数组中元素之间距离的程序。以下是对代码的解释: // // 1. calculateDistance 函数用于计算三个整数之间的距离,它接受三个整数作为参数,并返回它们之间距离的绝对值之和。 // // 2. findMinDistance 函数用于寻找三个数组 s1[]s2[]s3[] 中元素的最小距离,并打印出最小距离以及对应的三元组。它接受这三个数组及它们的长度作为参数。 // // 3. 在 findMinDistance 函数中,首先定义了一个初始的最小距离 minDistance,并将其设置为整型变量的最大值 INT_MAX。还定义了三个变量 minAminBminC,用于保存最小距离对应的三元组。 // // 4. 通过嵌套的循环遍历所有可能的三元组,计算它们的距离,并与当前的最小距离进行比较。如果找到一个更小的距离,则更新最小距离和对应的三元组。 // // 5. 最后,在 main 函数中定义了三个数组 s1[]s2[]s3[],并计算它们的长度。然后调用 findMinDistance 函数,并将这三个数组及其长度作为参数传递给函数。 // // 6. 程序执行完毕后,返回值为0,表示程序正常结束。 // // 总体而言,这段代码的功能是寻找三个数组中元素之间的最小距离,并输出最小距离及对应的三元组。

C语言实现三个数组元素最小距离计算

原文地址: https://www.cveoy.top/t/topic/OY1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录