Several Results
Completed
Write void min_max(int *a, int n, int *min, int *max) that returns two results through pointers. Read an array and print its minimum and maximum.
Input
Line 1: n. Line 2: n integers.
Output
One line: min max
Example
Input
5 3 9 -2 7 1
Output
-2 9
Editor
C
Hints
A function can only return one value, but it can write to as many pointers as you give it.
Solution explanation
"Output parameters" are how C functions return several results.
Show solution
#include <stdio.h>
void min_max(int *a, int n, int *min, int *max) {
*min = a[0];
*max = a[0];
for (int i = 1; i < n; i++) {
if (a[i] < *min) *min = a[i];
if (a[i] > *max) *max = a[i];
}
}
int main() {
int n, a[100], lo, hi;
scanf("%d", &n);
for (int i = 0; i < n; i++) scanf("%d", &a[i]);
min_max(a, n, &lo, &hi);
printf("%d %d\n", lo, hi);
return 0;
}