[ Nedja995 @ 15.01.2013. 22:37 ] @
Zanima me i znam da sam naleteo negde (ali sad ne mogu da nadjem kad mi treba) na neku funkciju (mozda u onoj iomanip biblioteci ) i uspeo sam da sredim rezultat npr ovog koda koji je tipa -843242564
Code:
#include<iostream>
#include<cstdlib>
#include<ctime>

using namespace std;

int main()
{
    int niz[50];

    cout << "\n 50 Brojeva iz niza: " << endl;

    for(int i = 0;i<=50;i++)
    {
        srand(time_t(i));
        niz[i]=rand();
        cout << "  " << niz[i];
    }

    int broj;
    int niz2[50];
    cout << "\n Upishi broj sa kojim bi trebali da su deljivi clanovi koje sabiramo: ";
    cin >> broj;
    int n=0;
    for(int i=0;i<=50;i++)
    {
        if (niz[i]%broj==0)
        {

            niz2[n]=niz[i];
            n++;
        }
    }

    cout << "\n Brojevi Deljivi sa " << broj << " iz niza su: ";

    for (int i = 0;i<=n;i++)
    {
        cout << " " << niz2[i];

    }

    int rez = 0;
    for(int i = 0;i<=n;i++)
    {

        rez = rez + niz2[i];

    }
    
    cout << "\n REZULTAT JE: "<< rez;

    system("pause");
    return 0;

}

[ X Files @ 15.01.2013. 22:57 ] @
Primeti da gde god imaš ovakav izraz:
for(int i = 0;i<=50;i++)
... to nije 50, nego 51 član. Da ne pominjemo da u C/C++ jezicima izraz "int niz[50]" rezerviše elemene od niz[0] do niz[49]. Dakle, niz[50] nije rezervisan i može dovesti do nepredvidivih rezultata ili ponašanja programa, ako mu se pristupa ili se menja.

Verujem da je slično i za ovo, mada ne znam napamet koliko je "n":
for (int i = 0;i<=n;i++)

Verujem da je baš ovo problem, jer se u kalkulaciju uzima i poslednji član niza2, koji uopšte nije definisan, nego ima neku slučajnu vrednost.

Za početak, umesto "<=" stavljaj samo "<", kako bi se uklopio u dimenzije niza. Dalje, pitaj šta ne radi...

[ Nedja995 @ 16.01.2013. 15:27 ] @
E hvala izbacio sam = iz toga to sam upisao jer nisam razmisljao a dev c++ mi nije izbaciovao greshku (istu greshku sam napravio i u http://www.elitesecurity.org/t460722-0#3233614 )
i samo me zanima ovo sredjivanje ispisa poshto sam nedavno naleteo na tutorial koji je objasnio kako moze da se sredi to kao i da se konvertuje na one science brojeve tipa 2x10e ili kako vec na tu foru neshto.Nashao sam i na cplusplus sajtu i mislim da se bash koristila biblioteka iomanip i neke funkcije kao setprecision, setflag iz iste biblioteke ako neko razume shta hocu da kazem....
[ Nedja995 @ 16.01.2013. 16:39 ] @
@X Files
Mozesh molim te baciti oko na ovaj kod trazim vec sat vremena nemogu da nadjem upetljao sam se u ovim petljama problem je kad radim debug
Run-Time Check Failure #2 - Stack around the variable 'niz' was corrupted.
to znaci da opet nisam inicijalizovao ovog puta niz. ali mislim da sam to odradio imam petlju za upis u niz i posle za proveru i ispisivanje i program dobro radi

Code:

#include<iostream>

using namespace std;


    bool promena(int prvi, int drugi)
    {
        if (prvi>drugi)
        
            return true;
            return false;
    }

int main()
{

    int niz[9];

    for(int i = 0;i<10;i++)
    {

        cout << "\n Upishi " << i + 1 << ". broj niza: ";
        cin >> niz[i];

    }



    for(int i=0;i<9;i++)
    {
        
        cout << niz[i];
        if (promena(niz[i],niz[i+1]))
        
            cout << " je veci u odnosu na " << niz[i+1] << endl;
        
        else
        
            cout << " je manji u odnosu na " << niz[i+1] << endl;
        
    }
    system("pause");
    return 0;
}

[ Mihajlo Cvetanović @ 16.01.2013. 16:45 ] @
Poruka je "Run-Time Check Failure #2 - Stack around the variable 'niz' was corrupted". Podebljao sam reč koja je ovde najbitnija, around. Nije problem sa podacima koji su u okvirima niza, nego je neko čačkao memoriju koja je tik pored granica niza. Ako je neko čačkao memoriju tik uz granicu niza onda je to dobra indikacija da je neko hteo nešto da upiše nešto u niz, ali je premašio granice. U ovom konkretno slučaju niz "niz" ima 9 članova, a ti imaš petlju u kojoj se upisuje od 0 do x<10, što je 10 članova. Zameni 10 sa 9 i rešio si problem.
[ Nedja995 @ 16.01.2013. 17:21 ] @
da to je to menjao sam i vratio nazad zato shto mi se pojavljivao problem u drugoj petlji za ispis zato shto zadnji clan uporedi sa clanom ispred kojeg nema
Code:

for(int i=0;i<9;i++)
    {
        
        cout << niz[i];
        if (promena(niz[i],niz[i+1]))
        
            cout << " je veci u odnosu na " << niz[i+1] << endl;
        
        else
        
            
            cout << " je manji u odnosu na " << niz[i+1] << endl;
        
    }


samo sam promenio i<9 na i<8 i to je to
Hvala Xfilesu i tebi na pomoci :)