Czy dana liczba dzieli się przez tą liczbę? - problem
Ostatnio zmodyfikowano 2015-09-12 17:50
Lich555 Temat założony przez niniejszego użytkownika |
Czy dana liczba dzieli się przez tą liczbę? - problem » 2015-09-12 11:50:46 Witam. Dopiero co zaczynam bawić się w programowanie i proszę o wyrozumiałość. Próbuję zrobić program, w którym podajemy jakąś liczbę (np 10), następnie podajemy zakres (np 5) i program pokazuje coś takiego: 10 dzieli się przez 2 10 nie dzieli się przez 3 10 nie dzieli się przez 4 10 dzieli się przez 5 Czyli <<liczba (w tym przypadku 10)<< dzieli/nie dzieli się przez liczbę od 2 do liczby podanej w zakresie (w tym przypadku 5). I chciałem zapytać, czy to co napisałem, ma w ogóle w jakimś mniejszym stopniu sens i czemu wyskakuje błąd. #include <iostream>
using namespace std;
int liczba, zakres, i = 2;
int main() { cout << "Witaj!" << endl; cout << endl; cout << "Podaj liczbe: "; cin >> liczba; cout << "Podaj zakres: "; cin >> zakres; cout << endl; if( zakres != 0 ) do { if(( i <= zakres; i++ ) &&( liczba % i != 0 ) ) { cout << "Liczba " << liczba << " jest podzielna przez " << i; } else cout << "Liczba " << liczba << " nie jest podzielna przez " << i; } while( i <= zakres ); return 0; }
A błędy jakie mi wyskakują to: http://i.imgur.com/CmS8oP0.png |
|
Winner_Of_Death |
» 2015-09-12 12:11:26 Zbędne, przecież i tak sprawdzasz w pętli czy `i` jest mniejsze bądź równe zakresowi. A i++; wstaw w pętli (po instrukcji warunkowej) |
|
Lich555 Temat założony przez niniejszego użytkownika |
» 2015-09-12 17:06:24 Masz rację, dzięki, lecz nadal coś nie gra, mianowicie instrukcja jest teraz wykonywana nieskończenie wiele razy, nie zatrzymuje się. if( zakres != 0 ) do { if( liczba % i != 0 ) { cout << "Liczba " << liczba << " jest podzielna przez " << i; i++; } else cout << "Liczba " << liczba << " nie jest podzielna przez " << i; } while( i < zakres );
|
|
michal11 |
» 2015-09-12 17:23:22 W ogóle to po co używać while ? W tym wypadku najczytelniejszy będzie for. for( int i = 2; i <= zakres; ++i ) { cout << "Liczba " << liczba <<( liczba % i == 0 ? "": " nie" ) << " jest podzielna przez " << i << endl; }
W tym wypadku sprawdzanie czy zakres jest mniejszy od 2 jest potrzebne tylko po to by wypisać jakiś komunikat. |
|
Lich555 Temat założony przez niniejszego użytkownika |
» 2015-09-12 17:50:13 Ok, dzięki wielkie za pomoc :) |
|
« 1 » |