TheParkourPL Opublikowano 27 Lutego 2017 Udostępnij Opublikowano 27 Lutego 2017 Mógłby mi ktoś powiedzieć czemu ten program nie zlicza sumy cyfr podanej liczby? http://pastebin.com/ChG8ZDg1 I mam też pytanie, jak napisać program który sprawdzi czy liczba jest pierwsza z użyciem pętli while @Edit Gdy zamieniłem pętle while na do while wszytko działa poprawnie, ale potrzebuje w pętli while. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PGS Opublikowano 27 Lutego 2017 Udostępnij Opublikowano 27 Lutego 2017 #include <iostream> using namespace std; int main() { int liczba, x=0, suma=0; cout << "Dane: " << endl; cin >> liczba; while(liczba!=liczba/10) { x=liczba%10; suma+=x; liczba = liczba/10; } cout << suma; return 0; } I o takie coś chodzi? #include <iostream> using namespace std; int main() { int liczba; while(true) { cin >> liczba; for (int i=2; i<=liczba; i++){ if (liczba%i==0){ if (i==liczba) cout<<"Pierwsza"<<endl; else cout<<"Nie"<<endl; break; } } } return 0; } Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TheParkourPL Opublikowano 27 Lutego 2017 Autor Udostępnij Opublikowano 27 Lutego 2017 @up Tak chodzi właśnie o to. Tylko mógłby mi ktoś wytłumaczyć tutaj zasadę działania tych pętli w tym programie bo kompletnie nie rozumiem jak one działają Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PGS Opublikowano 27 Lutego 2017 Udostępnij Opublikowano 27 Lutego 2017 W pierwszym zadaniu pętla działa dopóki nie zostanie zliczona te wszystkie liczby w podanej przez ciebie liczbie. W drugim - pierwsza pętla zapewnia stałe działanie programu, czyli możemy w jednym uruchomieniu programu sprawdzić tyle liczb ile chcemy. Druga petla sprawdza reszta z dzielenia z kazdej liczby wiekszej od 2 do naszej podanej. Potem sprawdza czy liczba z reszta 0 jest nasza liczba. Jeśli jest to znaczy ze liczba pierwsza, jesli nie to nie. Troche masło maślane, ale tłumaczyć to zbytnio nie potrafie Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
TheParkourPL Opublikowano 28 Lutego 2017 Autor Udostępnij Opublikowano 28 Lutego 2017 W pierwszym zadaniu pętla działa dopóki nie zostanie zliczona te wszystkie liczby w podanej przez ciebie liczbie. W drugim - pierwsza pętla zapewnia stałe działanie programu, czyli możemy w jednym uruchomieniu programu sprawdzić tyle liczb ile chcemy. Druga petla sprawdza reszta z dzielenia z kazdej liczby wiekszej od 2 do naszej podanej. Potem sprawdza czy liczba z reszta 0 jest nasza liczba. Jeśli jest to znaczy ze liczba pierwsza, jesli nie to nie. Troche masło maślane, ale tłumaczyć to zbytnio nie potrafie No dobra a da radę tą petle for w środku podmienić na while? Jest dla mnie bardziej czytelna Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PGS Opublikowano 28 Lutego 2017 Udostępnij Opublikowano 28 Lutego 2017 #include <iostream> using namespace std; int main() { int liczba, i; while(true) { i = 2; cin >> liczba; while(i<=liczba){ if (liczba%i==0){ if (i==liczba) cout<<"Pierwsza"<<endl; else cout<<"Nie"<<endl; break; } i++; } } return 0; } No dać się da. Tylko to nie jest rozwiązanie, bez poznania pętli FOR nie pojdziesz dalej w nauce. Poznanie kązdej pętli jest istotne jak też jej zrozumienie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PanTobi Opublikowano 1 Marca 2017 Udostępnij Opublikowano 1 Marca 2017 O______________O wut ?... nie chce mi się sprawdzać czy podaliście mu poprawne odpowiedzi ale widziałem że coś o działaniu pętli for ugh... for( wartości startowe ; warunki działania ; instrukcje do wykonania po każdym ponowieniu ) przy czym nie ma żadnego problemu w wpisaniu np. czegoś takiego for(int a=0, int b=2;b<20;b+=((a*20)/100)), a++) wartości startowe to po prostu deklarowanie zmiennych które będą istnieć do czasu istnienia pętli.. warunki działania to tak samo jak IF ( if( a == 5 ) dosmt ) to są... ugh jak sama nazwa mówi to co ma się wykonać po każdym odświeżeniu pętli... przy czym możesz też zapisać BEZ WARUNKÓW for(int a=0;;a++) albo for(;;) // Nieskończony for nieskończony ponieważ zapisaliśmy tutaj zwykłego for bez warunków jego działania ofc. taką pętlę też da się przerwać ale cóż... mniej więcej tak ona działa jak to pierwsze co ci napisałem ^_^ //Edit: PGS for nie jest potrzebne do wszystkiego ... nieco więcej starań i roboty "głupiego" ale while może symulować z palcem w dupie prace for... problem w tym że aby symulować prace for w while cóż... wymagane byłoby posiadanie świadomości jak działą for... dlatego swoich uczniów najpierw wole nauczyć plików wsadowych... bez forów itp. czyste goto if echo a to tylko dlatego aby sami stworzyli swoje pętle i zobaczyli od podstaw jak działa ... oo mam pomysł patrz ( o ile wiesz co robi break ) int a=0; ::for(int a=0;a<20;a++) while(true) ::{ { ::cout<<"hello"; cout<<"hello"; ::} if(a<20)break; :: a++; :: } :: Przeanalizuj ten kod a na 100% zrozumiesz działanie for .... kod wykonuje to samo ale na prawo z while a na lewo z for Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Zarchiwizowany
Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.