Tilt Posted August 30, 2013 Report Share Posted August 30, 2013 Se consider? subprogramul sub, cu trei parametri:· n, prin care prime?te un num?r natural (2<n<50);· v, prin care prime?te un tablou unidimensional cu n elemente, numere naturale cu celmult 4 cifre;· k, prin care prime?te un num?r natural (1<k?n).Subprogramul returneaz? suma primelor k elemente cu valoare impar? ale tabloului. Dac?nu exist? k elemente impare în tablou, subprogramul returneaz? valoarea -1.Scrie?i defini?ia complet? a subprogramului.Exemplu: dac? n=8, v=(2, 7, 6, 8, 3, 7, 5, 1), k=3, atunci subprogramul returneaz?valoarea 17 (7+3+7=17). Sunt curios daca am facut bine int sub(unsigned int n, int v[50], unsigned int k) {int OK=0, suma=0, i;for (i=0; i<n; i++) {if (v[i]%2==1 && OK!=k) {OK=OK+1;suma=suma+v[i];}}if (OK==K)return suma;else return -1;} Quote Link to comment Share on other sites More sharing options...
cacatul Posted August 30, 2013 Report Share Posted August 30, 2013 baga in C++ si vezi imediat daca ai facut bine sau nu. Quote Link to comment Share on other sites More sharing options...
dekeeu Posted August 30, 2013 Report Share Posted August 30, 2013 (edited) Edit. Edited August 30, 2013 by dekeeu Quote Link to comment Share on other sites More sharing options...
Tilt Posted August 30, 2013 Author Report Share Posted August 30, 2013 neoptimizat dar teoretic e bun ce am facut si eu nu? Quote Link to comment Share on other sites More sharing options...
H3xoR Posted August 30, 2013 Report Share Posted August 30, 2013 da Quote Link to comment Share on other sites More sharing options...
nedo Posted August 30, 2013 Report Share Posted August 30, 2013 Toshiba, nu este corect. Se cer primele k numere impare din vector. Nu primele k numere. "Subprogramul returneaz? suma primelor k elemente cu valoare impar? ale tabloului"Iata varianta meaint sub(int n, int v[50], int k){ int counter = 0; int sum = 0; int i = 0; for(i = 0; i < n;i++) { if(v % 2 == 1) { sum += v; counter++; } if(counter == k) { return sum; } } return -1;} Quote Link to comment Share on other sites More sharing options...
H3xoR Posted August 30, 2013 Report Share Posted August 30, 2013 int sub(unsigned n, int v[50], unsigned k){int ok=0, suma=0, i;for(i=0;i<n-k;i++){if(v%2!=0){s+=v;ok=1;}}if(ok==1)return s;elsereturn -1;}Nu e bun ce ai f?cut.Dac? un num?r impar se afl? exact la n-1 ce face programul t?u? exact, nu-l bag?-n seam?. Quote Link to comment Share on other sites More sharing options...
3rdFist Posted September 1, 2013 Report Share Posted September 1, 2013 Ai aici niste rezolvari poate te ajuta. Mi-a fost lene sa ma gandesc. Quote Link to comment Share on other sites More sharing options...