Program liczący ilość liczb, które spełniają zadanie zawiesza się
Ostatnio zmodyfikowano 2013-11-28 19:50
marek252 Temat założony przez niniejszego użytkownika |
Program liczący ilość liczb, które spełniają zadanie zawiesza się » 2013-11-28 19:20:11 Witam. edit:Już wiem co było źle. Nie można dzielić przez 0. Teraz pytanie, co zrobić, aby program nie zatrzymywał się na liczbie 49 tylko szedł dalej?
#include <iostream> #include <stdlib.h> #include <cmath>
using namespace std;
int main() { int licznik = 0; for( int x = 1; x <= 1000; x++ ) { if( x != 50 ) { if((( x * x ) /( 50 - x ) ) - sin( x ) >= 0 ) { cout << "Liczba " << x << " spelnia to rownanie" << endl; licznik++; } } } cout << "Bylo " << licznik << " liczb w przedziale [1, 1000] ]spelniajacych to rownanie"; system( "PAUSE" ); return 0; }
Pozdrawiam |
|
pekfos |
» 2013-11-28 19:27:49 Dla x równego 50 masz tam dzielenie przez zero. |
|
marek252 Temat założony przez niniejszego użytkownika |
» 2013-11-28 19:35:19 Właśnie się zorientowałem, zmieniłem 1 post. Teraz dochodzi do 49 i koniec. Chciałbym, aby dalsze liczby również sprawdzał. Zmieniłem kod, ale dalej dochodzi tylko do 49. Jak to łatwo zmienić, aby sprawdzał dalej? Kombinować tak jak to zrobiłem, czy inaczej? int main() { int licznik = 0; for( int x = 1; x <= 1000; x++ ) { if( x != 50 ) { if((( x * x ) /( 50 - x ) ) - sin( x ) >= 0 ) { cout << "Liczba " << x << " spelnia to rownanie" << endl; licznik++; } } else if( x == 50 ) { x = 51; if((( x * x ) /( 50 - x ) ) - sin( x ) >= 0 ) { cout << "Liczba " << x << " spelnia to rownanie" << endl; licznik++; } } } cout << "Bylo " << licznik << " liczb w przedziale [1, 1000] ]spelniajacych to rownanie"; system( "PAUSE" ); return 0; }
|
|
pekfos |
» 2013-11-28 19:43:06 Ten kod robi to samo, co poprzedni. Program działa prawidłowo, dla x większego od 50, wyrażenie jest ujemne. |
|
marek252 Temat założony przez niniejszego użytkownika |
» 2013-11-28 19:50:17 Racja, dzięki. |
|
« 1 » |