Sa zicem ca avem un vector cu n numere naturale si vrem sa afisam de cate ori apare fiecare numar. De exemplu:
pentru n=10 avem:
1 2 5 1 3 2 4 5 1 4 si se va afisa 3 2 1 2 2;
3= apare de 3 ori numarul 1
2= apare de 2 ori numarul 2
1 = apare o data numarul 3
2 = apare o data numarul 4
2 = apare o data numarul 5
Dar trebuie sa se afiseze in ordine crescatoare. Pe prima pozitia se afiseaza de cate ori apare numarul mai mic(in exemplu e 1), dupa al doilea(adica 2) si asa mai departe.
Multumesc anticipat!
Răspunsuri la întrebare
Răspuns de
0
Problema ta se rezolva usor cu vector de frecventa. Desi n-ai specificat cat de mare poate sa fie un numar din vectorul dat eu am considerat ca ar putea fi de cel mult 4 cifre <= 9999. Ai o rezolvare in C++. Succes!
#include <iostream>
using namespace std;
int n, i, x, v[10002], minn = 10002, maxx;
int main()
{
cin >> n;
for(i = 1; i <= n; i ++)
{
cin >> x;
v[x] = v[x] + 1;
if(x < minn) minn = x;
if(x > maxx) maxx = x;
}
for(i = minn; i <= maxx; i ++)
if(v[i] > 0) cout << i << " apare de " << v[i] << " ori" << "\n";
return 0;
}
#include <iostream>
using namespace std;
int n, i, x, v[10002], minn = 10002, maxx;
int main()
{
cin >> n;
for(i = 1; i <= n; i ++)
{
cin >> x;
v[x] = v[x] + 1;
if(x < minn) minn = x;
if(x > maxx) maxx = x;
}
for(i = minn; i <= maxx; i ++)
if(v[i] > 0) cout << i << " apare de " << v[i] << " ori" << "\n";
return 0;
}
The4Ever:
Multumesc mult! :)
Alte întrebări interesante
Matematică,
8 ani în urmă
Biologie,
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ă