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
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.
#2340
Răspunsuri la întrebare
Răspuns de
1
Răspuns:
poti incerca sa sortezi vectorul si apoi sa aduni primele n-1 elemente si ultimele n-1 elemente
Explicație:
Răspuns de
2
Răspuns:
int* sumaMinMax(int v[], int n){
int min = -1, max = -1, s = 0, x;
for(int i = 0; i < n; i++){
x = v[i];
s += x;
if(min == -1 || x < min)min = x;
if(max == -1 || x > max)max = x;
}
int *ret = new int[2];
ret[0] = s - max;
ret[1] = s - min;
return ret;
}
Explicație:
Se poate face foarte usor gasind suma tuturor elementelor si apoi, suma cea mai mare cu n-1 elemente este suma tuturor elementelor - minimul; suma cea mai mica cu n-1 elemente este suma tuturor elementelor - maximul;
Alte întrebări interesante
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă