C - petla n,m,k- nie wypisuje
Ostatnio zmodyfikowano 2016-05-12 15:25
miki313 Temat założony przez niniejszego użytkownika |
C - petla n,m,k- nie wypisuje » 2016-05-12 14:41:22 Treść zadania: Napisz program wczytujący ze standardowego wejścia trzy dodatnie liczby całkowite n, m i k, i wypisujący w kolejnych wierszach wszystkie wielokrotności n większe od m i mniejsze od k Był temat tego zadania ( żeby nie było że nie używam google), http://cpp0x.pl/forum/temat/?id=21708 ale nie chciałem odkopywać tamtego topicu. Napisałem, wręcz skopiowałem #include <stdio.h>
main() { int n, m, k, a = 0; printf( "Podaj liczby n, m oraz k" ); scanf( "%d %d %d", & n, & m, & k ); while( a == k ) { a += n; printf( "%d", a ); if( a <= m ) continue; } return 0; }
Czytam kod i wszystko wydaje się być git i super, jednak w konsoli podaje liczby i nic mi nie wyskakuje:/ Podaj liczby n, m oraz k1 2 3
i tyle, program nic nie wypisuje. Gdzie leży błąd? jeżeli ktoś znajdzie chwilę, to będę także wdzięczny za wytłumaczenie alternatywnego rozwiązania, też z tamtego tematu, for( m =( m / n ) * n + n; m < k; m += n ) { cout << m; } dzięki :) |
|
mateczek |
» 2016-05-12 15:10:18 #include <iostream> using namespace std; main() { int n, m, k, wielokrotnosc = 0; cout << "Podaj liczby n, m oraz k" << endl; cin >> n >> m >> k; while(( wielokrotnosc += n ) < k ) { if( wielokrotnosc <= m ) continue; cout << wielokrotnosc << " "; } cout << endl; }
wyjaśnienie!!! z taką optymalizają i przy pomocy pętli while program można napisać tak #include <iostream> using namespace std; main() { int n, m, k, wielokrotnosc; cout << "Podaj liczby n, m oraz k" << endl; cin >> n >> m >> k; wielokrotnosc = m / n * n; while(( wielokrotnosc += n ) < k ) { cout << wielokrotnosc << " "; } cout << endl; }
|
|
miki313 Temat założony przez niniejszego użytkownika |
» 2016-05-12 15:17:01 Dzięki :) A wiesz czemu "moja" wersja nie działa poprawnie? |
|
mateczek |
» 2016-05-12 15:25:39 zły warunek while( a == k ) while( a < k )
|
|
« 1 » |