#include #include // 辅助函数:比较函数,用于qsort排序 int compare(const void *a, const void *b) { return (*(int *)a - *(int *)b); } int findMedianNumber(int arr[], int n) { // 先对数组进行排序 qsort(arr, n, sizeof(int), compare); // 检查中位数是否符合要求 int medianIndex = n / 2; int median = arr[medianIndex]; // 计算比中位数小和大的元素数量 int smaller = 0, larger = 0, i; for (i = 0; i < n; i++) { if (arr[i] < median) { smaller++; } else if (arr[i] > median) { larger++; } } // 检查条件 if (smaller == larger) { return median; } else { return -1; } } int main() { int n; // 读取整数序列的数量 scanf("%d", &n); int arr[n], i; // 读取整数序列 for (i = 0; i < n; i++) { scanf("%d", &arr[i]); } // 找到中间数 int result = findMedianNumber(arr, n); // 输出结果 printf("%d\n", result); return 0; }