Witam.
Jak łatwo będzie się domyślić z dalszej części postu dopiero zaczynam zabawę z programowaniem, proszę więc o wyrozumiałość;].
Przerabiam właśnie "zbiór zadań" Krzaczkowskiego i...
1.4.6 Napisz program, który wczytuje ze standardowego wejścia liczbę całkowitą
n (n > 2) i wypisuje na standardowym wyjściu iloczyn liczb
parzystych z zakresu od 2 do n (czyli 2 ∗ 4 ∗ . . . ∗ n dla n parzystych
i 2 ∗ 4 ∗ . . . ∗ (n − 1) w przeciwnym wypadku).
Zadanie wydaje mi się łatwe zwłaszcza, że poprzednie podobne udało mi sie jakos ogarnąć. Tym większa więc moja frustracja kiedy siedzę nadal od ponad godziny i zupełnie nie rozumiem co może być źle.
Kod napisałem tak:
#include <iostream>
using namespace std;
main ()
{
int n, m, i = 1;
do
{
cout <<"Podaj liczbe n:";
cin >>n;
}
while ( n < 2);
for ( m = 2; m >= n - 1; m = m + 2)
{
i = i * m;
}
cout <<i;
system("PAUSE");
}
Wynik na wyjściu pokazuje: 1 , więc zakładam że pętla wcale nie jest wykonywana. Wyjątkie jest sytuacja dla n=2 wtedy namyśla się dłuższą chwilę i wypluwa 0. Ktoś ma jakąś odkrywczą sugestię?;) Wiem, że chodzi o warunek pętli ale co z nim jest nie tak?
Z góry dziękuję za pomoc.
Pozdrawiam.