Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

liczba doskonala

Ostatnio zmodyfikowano 2015-02-06 16:40
Autor Wiadomość
rikrosfit
Temat założony przez niniejszego użytkownika
liczba doskonala
» 2015-02-06 16:05:01
Witam, ucze sie programowac, mam do napisania program ktory sprawdzi czy podana liczba z klawiatury jest liczba doskonała czyli suma jej dzielnikow własciwych jest rowna samej liczbie, napisalem program, niestety nie dziala prawidlowo, prosze o poprawienie go jak najprostszą metodą, z uwzgeldnienim komentarzy objasniajacych krok po kroku pozdrawiam ;)(w komentarzach napisalem rozumowanie mojego programu wedlug mnie, jesli popelnilem jakis bląd prosze go poprawic )
int main ()
{
int x;
int i;
int suma_dzielnikow=0;

cout<< "podaj liczbe:";
cin>>x;
       for (x=1; x<=(x/2); x++)//petla wykonuje sie do momentu dojscia do polowy naszej liczby
      {
             if(x%i==0)// jesli liczba jest dzielnikiem to  zwiekszamy sume o naszą liczbe
             suma_dzielnikow+=i;
      }     
        if (suma_dzielnikow==x)
                               cout<< "\nliczba jest doskonala";
                               else
                               cout<<" \nliczba nie jest doskonala";
   

  system("pause");
  return 0;
}
 
P-126086
aksen
» 2015-02-06 16:20:33
C/C++
cin >> x;
for( x = 1; x <=( x / 2 ); x++ ) //petla wykonuje sie do momentu dojscia do polowy naszej liczby

podstawowy błąd:
-----------------------------
Najpierw pobierasz z cin liczbę i wpisujesz ją do x
a potem w pętli wpisujesz pod x jedynkę, czyli nadpisujesz tę pobraną liczbę (x=1)
W pętli do iteracji musisz użyć dodatkowej zmiennej
P-126087
rikrosfit
Temat założony przez niniejszego użytkownika
» 2015-02-06 16:27:04
aha no racja, tzn ze mam zadeklarowac sobie nową zmienną i w pętli for  zamiast x uzyc tej nowej zmiennej tak? i to wszystko ?

int x;
int i;
int suma_dzielnikow=0;
int l;

cout<< "podaj liczbe:";
cin>>x;
       for (l=1; l<=(x/2); l++)//petla wykonuje sie do momentu dojscia do polowy naszej liczby
      {
             if(x%i==0)// jesli liczba jest dzielnikiem to  zwiekszamy sume o naszą liczbe
             suma_dzielnikow+=i;

cos takiego ? (wiem ze moge robic banalne blędy ale dopiero sie ucze :P )
P-126088
aksen
» 2015-02-06 16:32:32
Nie potrzeba nowej zmiennej, bo wystarczyło użyć zadeklarowanej już zmiennej "i"
Jeśli już używasz "l" to zmień w pętli wszystkie "i" na "l".

P-126090
rikrosfit
Temat założony przez niniejszego użytkownika
wyszlo
» 2015-02-06 16:34:41
ok, działa dzieki wielkie jest na tym forum cos w rodzaju plusow, sogów, piw etc ? to bym Ci dał tylko jestem tu świezy :D
P-126091
aksen
» 2015-02-06 16:40:04
konto założyłem wcześniej, ale działam tu dopiero od wczoraj wiec też nie wiem :)
P-126092
« 1 »
  Strona 1 z 1