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

Czy dana liczba dzieli się przez tą liczbę? - problem

Ostatnio zmodyfikowano 2015-09-12 17:50
Autor Wiadomość
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.
C/C++
#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
P-137436
Winner_Of_Death
» 2015-09-12 12:11:26
C/C++
( i <= zakres; i++ ) //blad
 
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)
P-137437
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ę.
C/C++
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 );

P-137440
michal11
» 2015-09-12 17:23:22
W ogóle to po co używać while ? W tym wypadku najczytelniejszy będzie for.

C/C++
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.
P-137441
Lich555
Temat założony przez niniejszego użytkownika
» 2015-09-12 17:50:13
Ok, dzięki wielkie za pomoc :)
P-137442
« 1 »
  Strona 1 z 1