357
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
sumaMinMaxprimește doi parametri, în această ordine, un tablou unidimensionalvși un număr naturalnreprezentând numărul de elemente ale luiv- elementele lui
vsunt indexate de la0 sumaMinMaxreturnează un pointer laint, reprezentând un tablou alocat dinamic în cadrul funcției, tablou cu două elemente cu semnificațiile din cerință1 ≤ n ≤ 1001 ≤ v[i] ≤ 50, undev[i]reprezintă ali-lea element dinv
Exemplu
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.
int* sumaMinMax(int a[], int n){
int *v = new int [2];
int sum = 0;
int mini = 51;
int maxi = 0;
for(int i = 0; i < n; ++i){
sum += a[i];
if(a[i] > maxi)
maxi = a[i];
if(a[i] < mini)
mini = a[i];
}
v[0] = sum - maxi;
v[1] = sum - mini;
return v;
}
Comentarii