Informatică, întrebare adresată de printess199, 8 ani în urmă

pbinfo 3656 URGENT
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.


printess199: EU AM FACUT-O ASA
printess199: int FGreater(int a[],int n,int x)
{
int mn=2147483647,cnt=-1;
for(int i=0;i {
if(a[i]x)
{
mn=a[i];
cnt=1;
}
}
if(cnt==-1)
return -1;
else return mn;
}
printess199: Dar imi da 80 de puncte
boiustef: e trunchiat codul... nu pot comenta. Sper soluția mea de 100 puncte să te ajute să-ți găsești eroarea..
Succese!
printess199: Mult succes si tie! Multumesc!

Răspunsuri la întrebare

Răspuns de boiustef
8

Răspuns:

int FGreater(int a[],int n,int x)

{

   int gasit=0, mn;

   for(int i=0; i<n; i++) {

       if(a[i]>x) {

           if (gasit==0) { mn=a[i]; gasit=1;}

           else { if (a[i]<mn) mn=a[i]; }

       }

   }

   if(gasit) return mn;

   return -1;

}

Explicație:


printess199: Multumesc mult!
Alte întrebări interesante