Several Results

Lab C Intermediate 20 points

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
Sample input available Sample output available
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;
}
Output
Answer
HOME LEARN COMMUNITY DASHBOARD