#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <string.h>
// 比较函数,用于排序
int compare(const void *a, const void *b) {
return (*(int *)a - *(int *)b);
}
// 计算两两之差绝对值最小的值
int findMinAbsoluteDifference(int arr[], int n) {
if (n < 2) {
return -1; // 数组中至少需要两个元素
}
qsort(arr, n, sizeof(int), compare);
int minDiff = INT_MAX;
for (int i = 1; i < n; i++) {
int diff = abs(arr[i] - arr[i - 1]);
if (diff < minDiff) {
minDiff = diff;
}
}
return minDiff;
}
int main() {
char input[100]; // 假设输入不超过100个字符
int n = 0;
int arr[100]; // 假设数组不超过100个元素
scanf("%s", input);
// 解析输入字符串,提取整数元素
char *token = strtok(input, "{}, ");
while (token != NULL) {
arr[n++] = atoi(token);
token = strtok(NULL, "{}, ");
}
if (n < 2) {
printf("数组中至少需要两个元素才能计算最小差值。\n");
return 1;
}
int minDiff = findMinAbsoluteDifference(arr, n);
printf("%d", minDiff);
return 0;
}
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交