Informatică, întrebare adresată de sikesjack1, 8 ani în urmă

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ăspunsuri la întrebare

Răspuns de ProMinecraft69
1

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.

Alte întrebări interesante