👤

Buna!
Am scris urmatorul cod, cand declar vectorul de frecventa in afara functiei main prograamul functioneaza, dar daca il declar in interiorul functiei main, nu da rezultatul corect. Care este explicatia?





#include
#include
using namespace std;
ifstream in("pareimpare.in");
ofstream out("pareimpare.out");
int v[100];
int main()
{
int x,i;
while (in>>x)
v[x]++;

for (i=1; i<100; i+=2)
if (v[i]) out < out < for (i=98; i>=0;i-=2)
if (v[i])out <
out <

return 0;
}



Răspuns :

Răspuns:

In primul rand, codul e copiat naspa dar nu asta e problema.

Explicație:

In al doilea rand, cand declari vectorul de frecventa in afara functiei int main, acesta primeste valoarea 0 la toate variabilele. Se mai spune si declarare GLOBALA, tot ce declari inaintea functiei int main ia valoarea 0. Daca declari o variabila de exemplu int x, in afara int main, x va avea valoarea 0. Asa si cu vectorul de frecventa. Cand il declari in int main, va lua o valoare la intamplare care de ce cele mai multe ori e nefolositoare.