1f08c3bdfSopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later 2f08c3bdfSopenharmony_ci/* Copyright (c) 2021 Oracle and/or its affiliates. All Rights Reserved. */ 3f08c3bdfSopenharmony_ci 4f08c3bdfSopenharmony_ci#include <stdio.h> 5f08c3bdfSopenharmony_ci#include <stdlib.h> 6f08c3bdfSopenharmony_ci 7f08c3bdfSopenharmony_cistatic int cmp(const void *a, const void *b) 8f08c3bdfSopenharmony_ci{ 9f08c3bdfSopenharmony_ci return (*(int *)a - *(int *)b); 10f08c3bdfSopenharmony_ci} 11f08c3bdfSopenharmony_ci 12f08c3bdfSopenharmony_ciint main(int argc, const char *argv[]) 13f08c3bdfSopenharmony_ci{ 14f08c3bdfSopenharmony_ci const size_t size = argc - 1; 15f08c3bdfSopenharmony_ci 16f08c3bdfSopenharmony_ci if (!size) { 17f08c3bdfSopenharmony_ci fprintf(stderr, "Please provide a numeric list\n"); 18f08c3bdfSopenharmony_ci return 1; 19f08c3bdfSopenharmony_ci } 20f08c3bdfSopenharmony_ci if (size == 1) { 21f08c3bdfSopenharmony_ci printf("%d", atoi(argv[1])); 22f08c3bdfSopenharmony_ci return 0; 23f08c3bdfSopenharmony_ci } 24f08c3bdfSopenharmony_ci 25f08c3bdfSopenharmony_ci int arr[size]; 26f08c3bdfSopenharmony_ci size_t i; 27f08c3bdfSopenharmony_ci 28f08c3bdfSopenharmony_ci for (i = 0; i < size; ++i) 29f08c3bdfSopenharmony_ci arr[i] = atoi(argv[i + 1]); 30f08c3bdfSopenharmony_ci 31f08c3bdfSopenharmony_ci qsort(arr, size, sizeof(arr[0]), cmp); 32f08c3bdfSopenharmony_ci 33f08c3bdfSopenharmony_ci const size_t size2 = size / 2; 34f08c3bdfSopenharmony_ci printf("%d", (size & 1) ? arr[size2] : ((arr[size2 - 1] + arr[size2]) / 2)); 35f08c3bdfSopenharmony_ci 36f08c3bdfSopenharmony_ci return 0; 37f08c3bdfSopenharmony_ci} 38