Min/Max

Napisati funkciju koja vraća i minimum i maksimum niza jednim prolaskom kroz niz.

Ulaz

Sa standardnog ulaza se učitava broj $n$ ($1 \leq n \leq 10^9$), a zatim i $n$ elemenata niza iz opsega od $-10^9$ do $10^9$.

Izlaz

Na standardni izlaz ispisati minimalni element i maksimalni element niza.

Primer

Ulaz

10
4 2 7 0 5 9 8 3 6 1

Izlaz

0 9

Rešenje

main.c

#include <stdio.h>
#include <stdlib.h>

void min_max(int *arr, int n, int *min, int *max) 
{
	*min = arr[0];
	*max = arr[0];
	for (size_t i = 1; i < n; i++) {
		if (arr[i] < *min) *min = arr[i];
		if (arr[i] > *max) *max = arr[i];
	}
}

int main(void)
{
	size_t n;

	scanf("%zu", &n);

	int *arr = malloc(n * sizeof (int));
	if (arr == NULL) {
		exit(EXIT_FAILURE);
	}

	for (size_t i = 0; i < n; i++) {
		scanf("%d", &arr[i]);
	}

	int min, max;
	min_max(arr, n, &min, &max);

	printf("%d %d\n", min, max);

	free(arr);

	exit(EXIT_SUCCESS);
}