[ Crazy shadow @ 18.10.2007. 17:23 ] @
Evo zadatka koji trenutno radim.

Mnoziti prirodne brojeve od broja 1 sve dok proizvod nebude veci od 200.Stampati zadnji broj i zbir...


ja sam to uradio ovako
Code:

#include<iostream>
using namespace std;
void main()
{
    int n=0;
    int p=0;
    do 
    {
        n++;
        p*=n;
    }while(p<=100);
        cout<<"\nProizvod je:"<<p;
        cout<<"\nZadnji broj je:"<<n<<"\n";
        system("PAUSE");
        
}

Program nema greske ali kad se startuje konzola nista se ne desava?
[ X Files @ 18.10.2007. 17:45 ] @
Inicijalna vrednost za množenje je JEDINICA a ne NULA :)

dakle:
int p=1;
... inače, sve množiš sa nulom, pa nema očekivanog uvećanja proizvoda.


P.S.

BTW, prototip main() funkcije po standardu treba da bude:
int main() ili int main(int argc, char *argv[])

... i poželjno je da vraća neku int vrednost, recimo:
return 0;


[Ovu poruku je menjao X Files dana 18.10.2007. u 18:57 GMT+1]
[ Crazy shadow @ 20.10.2007. 15:40 ] @
Hvala ti.Shvatio sam da ne moze da se mnozi sa nulom :D
[ proka_92 @ 15.12.2008. 20:35 ] @
Code:

#include <stdio.h>
main()
{
      int a=1,zbir;
      zbir=a*a;
      while(zbir<=200)
      {
                      a=a+1;
                      zbir=zbir+a*a;
                      }
      printf("%d\t%d",a,zbir);
      getchar();
      }

Jel moze to da se uradi ovako? Imajte na umu da sam totalni pocetnik...
[ Eurora3D Team @ 17.12.2008. 01:10 ] @
Prvo , vazno je da radi :)
Mali kriticki osvrt :
Malo lici na C
Koristi iostream i sl. i treba pisati jednostavnije (svedenije)
Po konvenciji funkcija main je int (int main) i treba da vrati int (return 0 npr.)
Ovo je ekvivalent tvog programa (s tim sto ovde zbir ne prelazi 200 kao kod tebe)
Code:

#include<iostream>
using namespace std;

int main()
{
    int Broj = 0 , Zbir = 0;

    while(++Broj && (Zbir + Broj * Broj) <= 200 && (Zbir += Broj * Broj))
    ;
    Broj--;

    cout << "Zbir je " << Zbir << endl << "Broj je " << Broj << endl;
    system("pause");
    return 0;
}

ali ako sam dobro razumeo ovaj vas zadatak 'dok proizvod nije veci od 200 ...' znaci samo Broj * Broj <= 200 , trebalo bi
Code:

while (++Broj && (Broj * Broj) <= 200 && (Zbir += Broj * Broj))
    ;
Broj--;

poz
[ proka_92 @ 17.12.2008. 23:13 ] @
E eurora pazi mi u skoli ucimo ovako, znaci sa stdio.h i ovim komandama... I sta znam nekako mi lakse da ucimo tako jer su komande prilicno logicne... poz
[ Eurora3D Team @ 18.12.2008. 02:28 ] @
Ok ... moze i tako. A i program radi.
Zapamti ove 2 cake ... lakse je nego ovako kao sto ti pises
Code:

 a=a+1; // ovo moze i ovako a++;
 zbir=zbir+a*a; // a ovo moze ovako zbir+= (a*a);

poz