本文示範如何使用 C 語言找出兩個整數陣列中所有元素兩兩配對的絕對差值,並求出其中的最小值。這是一個典型的雙重迴圈遍歷與極值尋找練習。
給定兩個陣列 num[] = {1, 3, 5, 7, 9}(5 個元素)與 cou[] = {2, 4, 6, 8}(4 個元素)。需計算每一對元素 |cou[i] - num[j]| 的絕對值,共 20 組差值,最後找出最小者。
sum[] 暫存所有差值。sum[]。sum[] 找出最小值 min。#include <stdio.h>
#include <stdlib.h>
int main() {
int i, j, k = 0;
int min;
int sum[20];
int num[] = {1, 3, 5, 7, 9};
int cou[] = {2, 4, 6, 8};
// 計算所有絕對差值
for (i = 0; i < 4; i++) {
for (j = 0; j < 5; j++) {
sum[k++] = abs(cou[i] - num[j]);
}
}
// 尋找最小值
min = sum[0];
for (i = 0; i < k; i++) {
if (sum[i] < min) min = sum[i];
}
printf("陣列 num[] 與 cou[] 差的絕對值最小為 %d\n", min);
return 0;
}

abs() 函式取得絕對值