Grade 10 · Subprograms (functions)Citește în română
Minimum and maximum returned by reference
Original: Minim și maxim întoarse prin referință
The idea
A function can return a single value with return. When we need several results, we make them reference parameters: void minMax(int v[], int n, int &mn, int &mx). The function writes directly into the variables of main. We print the minimum and the maximum of the array.
Original description (Romanian)
O funcție poate întoarce cu return o singură valoare. Când avem nevoie de mai multe rezultate, le punem ca parametri prin referință: void minMax(int v[], int n, int &mn, int &mx). Funcția scrie direct în variabilele din main. Afișăm minimul și maximul vectorului.
- Complexity
- O(n)
- Grade
- Grade 10 (Clasa a X-a)
- Chapter
- Subprograms (functions)
Examples
Input
6 4 -3 10 7 -3 2
Expected output
-3 10
Input
1 42
Expected output
42 42
The code
Comments are in Romanian, as in the original collection. Edit freely: you can reset at any time.
/*
* Titlu: Minim și maxim întoarse prin referință
* Clasa: 10
* Capitol: Subprograme (funcții)
* Descriere: O funcție poate întoarce cu return o singură valoare. Când avem nevoie
* de mai multe rezultate, le punem ca parametri prin referință:
* void minMax(int v[], int n, int &mn, int &mx). Funcția scrie direct în
* variabilele din main. Afișăm minimul și maximul vectorului.
* Complexitate: O(n)
*
* Exemplu
* Intrare:
* 6
* 4 -3 10 7 -3 2
* Ieșire: -3 10
*
* Exemplu
* Intrare:
* 1
* 42
* Ieșire: 42 42
*/
#include <iostream>
using namespace std;
void minMax(int v[], int n, int &mn, int &mx)
{
mn = mx = v[0];
for (int i = 1; i < n; i++)
{
if (v[i] < mn)
mn = v[i];
if (v[i] > mx)
mx = v[i];
}
}
int main()
{
int v[1000], n;
cin >> n;
for (int i = 0; i < n; i++)
cin >> v[i];
int mic, mare;
minMax(v, n, mic, mare);
cout << mic << ' ' << mare << '\n';
return 0;
}
Runs on a real g++ (C++17, -O2) through Compiler Explorer. Keep runs short; there's a time limit.