1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| #include <stdbool.h>
#include <stddef.h>
bool minmax(int const* array, size_t size, int* outMin, int* outMax)
{
if(array == NULL || outMin == NULL || outMax == NULL || size < 1)
return false;
*outMin = *outMax = array[0];
for(size_t k = 1; k < size; ++k) {
if (*outMin > array[k]) *outMin = array[k];
else if(*outMax < array[k]) *outMax = array[k];
}
return true;
}
// Exemple d'utilisation :
#include <stdio.h>
int main()
{
int const arrayTest[] = {2, -3, 3, -7, 7, -5, 5};
size_t const arrayTestSize = sizeof(arrayTest) / sizeof(int);
int min, max;
bool const ok = minmax(arrayTest, arrayTestSize, &min, &max);
if(ok)
printf("The minimum is %d and the maximum is %d.", min, max);
else
printf("Programming error!");
return 0;
} |
Partager