# PBinfo #3656 – FGreater – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: deivid

## Enunț

Cerinţa
Scrieţi definiția completă a subprogramului C++ cu antetul:

int FGreater(int a[], int n, int x)
care are trei parametri:  


a, prin care primeşte un tablou unidimensional de numere întregi
n, numărul efectiv de elemente ale tabloului a
x, un număr întreg

Funcția returnează cel mai mic număr din a, strict mai mare decât x. În caz că nu există o asemenea valoare, funcția va returna valoarea -1

Restricţii şi precizări

0 ≤ a[i] ≤ 231-1
0 ≤ x ≤ 231-1
numele subprogramului cerut este FGreater
elementele vectorului a sunt indexate de la zero

Exemplu:
Dacă n=6, a=(9,15,5,12,19,30), x=10, atunci valoarea returnată este 12. Dacă n=6, a=(9,15,5,12,19,30), x=100, atunci valoarea returnată este -1.

Important
Soluţia propusă va conţine doar definiţia subprogramului cerut. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.

## Cod sursă C++

```cpp
int FGreater(int a[], int n, int x)
{
    int M, i;
    // cauta primul numar mai mare decat x
    for (i = 0; i < n && a[i] <= x; i++)
        ;
    // daca nu exista niciun numar mai mare decat x
    if (i >= n) return -1;
    // s-a gasit primul numar > x, cauta in continuare pe cel mai mic, mai mare ca x
    M = a[i];
    for (; i < n; i++)
        if (M > a[i] && a[i] > x)
            M = a[i];
    return M;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/3656)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/3656/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-3656/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
