Informatică, întrebare adresată de arkavas, 9 ani în urmă


Cerința
Scrieți funcția sumaMinMax care primește ca parametri un tablou unidimensional v format din n elemente și un număr natural n. Funcția va returna un vector cu două elemente, primul element reprezentând cea mai mică sumă formată din exact n-1 elemente dintre cele n ale lui v, iar cel de-al doilea element reprezentând cea mai mare sumă formată din exact n-1 elemente dintre cele n ale lui v.

Restricții și precizări
sumaMinMax primește doi parametri, în această ordine, un tablou unidimensional v și un număr natural n reprezentând numărul de elemente ale lui v
elementele lui v sunt indexate de la 0
sumaMinMax returnează un pointer la int, reprezentând un tablou alocat dinamic în cadrul funcției, tablou cu două elemente cu semnificațiile din cerință
1 ≤ n ≤ 100
1 ≤ v[i] ≤ 50, unde v[i] reprezintă al i-lea element din v

Intrare

5
1 2 3 4 5
Ieșire

10 14
Explicație
10 reprezintă primul element din vectorul returnat, iar 14 reprezintă al doilea element.

Răspunsuri la întrebare

Răspuns de JolieJulie
3
#include <iostream>
using namespace std;



void sumaMinMax (int v[50],int n)
{
    int i,min=v[0],max=v[0],a[2];
    a[0]=0;
    a[1]=0;
    for(i=0; i<n; i++)
        if(v[i]<min)
            min=v[i];
    for(i=0; i<n; i++)
        if(v[i]>max)
            max=v[i];

    for(i=0; i<n; i++)
        if(v[i]!=max)
            a[0]=a[0]+v[i];

    for(i=0; i<n; i++)
        if(v[i]!=min)
            a[1]=a[1]+v[i];

    cout<<a[0]<<" "<<a[1];

}



int main()
{
    int n,v[50],nr,i;
    cin>>n;
    for(i=0; i<n; i++)
    {
        cin>>nr;
        v[i]=nr;
    }
   sumaMinMax(v,n);

}

arkavas: int *sumaMinMax(int v[50], int n)
{
int smin=0, smax=0,i;
int *a=new int[2];
for(i=0; i {
smax=smax+v[i+1];
smin=smin+v[i];
}
a[0]=smin;
a[1]=smax;
return a;
}
arkavas: Eu am primit 20 de puncte pentru asta.
arkavas: si imi pare la indicatie: După calcularea într-un mod optim al celor două sume, se va aloca dinamic un vector cu două elemente care va fi returnat de funcție
arkavas: Ai idee cum se rezolva???? Eu mi-am prins urechile
JolieJulie: Alocat dinamic ? Hmmm....
arkavas: da
JolieJulie: o sa incerc sa fac
JolieJulie: daca nu imi iese ,asta e
JolieJulie: daca ma gandesc,pentru alocare dinamica ai nevoie de niste functii pe care trebuie de fapt sa le introduci tot in functia sumaMinMax,ca altfel nu are de unde sa stie pbinfo cum ai alocat tu vectorul .... off...
Alte întrebări interesante