Paul4games Posted December 13, 2010 Report Posted December 13, 2010 Plm am o problema la info ,am stat o ora sa ma gandesc la ea am rezolvato dar pana la urma mi-am dat seama ca era rezolvata gresit(nu mai postez ce tampenie am facut).Cerinta la problema este:Se citesc de la tastatura un numar natural n si un sir de n numere intregi.Scrieti un algoritm eficient care determina cea mai mare valoare negativa dintre cele citite,precum si numarul de aparatii(aparitiile astea mo futut rau de tot) ale acesteia in cadrul sirului.In cazul in care sirul citit nu contine nici o valoare negativa, se va afisa mesajul "NU EXISTA". Exemplu: Pentru n=8 si numerele (10,3,-4,-7,-4,-9,11,-4), se vor afisa valorile -4 si 3,deoarece -4 este cel mai mare element negativ al sirului si apare de 3 ori.Ps:Zice ca in pseudocod sau in pasca,acum merge si in alte limbaje si o transcriu eu in pascal! Quote
MrRip Posted December 13, 2010 Report Posted December 13, 2010 La determinarea celei mai mari valori negative cred ca te descurci , iar cu numarul aparitiilor faci un contor care sa numere de cate ori apare ( un k++ ) . Quote
Paul4games Posted December 13, 2010 Author Report Posted December 13, 2010 RipKid mi-ai putea un exemplu ca am incercat cu contor dar nu a iesit mai nimic.... Quote
Ellimist Posted December 13, 2010 Report Posted December 13, 2010 if (max==a) k++;cout<<k<<" numar de aparitii"; Quote
cmiN Posted December 13, 2010 Report Posted December 13, 2010 Mai pe programeste ;p.Fara sortari, cautari, vectori, draci, laci, craci. Totul se face liniar in O(n).#include <iostream>using namespace std;int main(){ int n, nr, max = -32767, ap = 0; bool flag = false; cout << "n: "; cin >> n; cout << "Introdu " << n << " numere...\n"; while (n-- > 0) { cin >> nr; if (nr < 0) { flag = true; if (nr == max) { ap++; } else if (nr > max) { max = nr; ap = 1; } } } if (flag) { cout << max << " " << ap; } else { cout << "NU EXISTA"; } system("pause >nul"); return 0;} Quote
Patrunjel Posted December 13, 2010 Report Posted December 13, 2010 Nu te lua dupa el ca nu-i bine vezi ca nu-ti ia minim decat daca e negativ.Revin cu edit in 2 minute, sa scriu sursa.PS: Scuze, ai avut dreptate nu citisem eu enuntul calumea Quote