Czyżby błąd kompilatora?
Ostatnio zmodyfikowano 2012-01-19 16:03
jsc Temat założony przez niniejszego użytkownika |
Czyżby błąd kompilatora? » 2012-01-19 02:00:59 Napisałem na SPOJ taki program #include <iostream> #include <iomanip>
using namespace std;
typedef double liczba;
liczba obliczWyrazWolny( liczba wspolczynnikB, liczba wspolczynnikC ) { return wspolczynnikB - wspolczynnikC; }
string sprawdzLiczbeMiejscZerowych( liczba wspolczynnikKierunkowy, liczba wyrazWolny ) { if( wspolczynnikKierunkowy != 0 ) { return ""; } else { if( wyrazWolny != 0 ) { return "NWR"; } else { return "BR"; } } }
liczba obliczMiejsceZerowe( liczba wyrazWolny, liczba wspolczynnikKierunkowy ) { return -( wyrazWolny / wspolczynnikKierunkowy ); }
int main() { liczba wspolczynnikA; liczba wspolczynnikB; liczba wspolczynnikC; cin >> wspolczynnikA >> wspolczynnikB >> wspolczynnikC; liczba wyrazWolny = obliczWyrazWolny( wspolczynnikB, wspolczynnikC ); string czyMiejscaZerowe = sprawdzLiczbeMiejscZerowych( wyrazWolny, wspolczynnikA ); if( czyMiejscaZerowe == "" ) { cout << obliczMiejsceZerowe( wyrazWolny, wspolczynnikA ); } else { cout << czyMiejscaZerowe; } return 0; }
I błąd polega na tym, że wpisuję kombinację liczb, która powinna wyświetlić napisu NWR np. 0.00 2.00 3.00 wyskakuje napis inf, reszta przypadków jest obsługiwana poprawnie. Podejrzewam błąd kompilatora, a co wy o tym sądzicie? |
|
akwes |
» 2012-01-19 02:14:31 yyyy po prostu nie dziel przez zero ;) ? |
|
DejaVu |
» 2012-01-19 02:28:05 Muszę przyznać, że całkiem fajnie organizujesz swój kod :) Co prawda zamiast string-a mógłbyś użyć enuma ale generalnie elegancki styl organizacji kodu :) |
|
jsc Temat założony przez niniejszego użytkownika |
» 2012-01-19 10:51:10 A co z błędem? |
|
DejaVu |
» 2012-01-19 13:09:34 Kolega już Ci napisał - nie dziel przez zero. |
|
pekfos |
» 2012-01-19 15:06:32 O ho, ho.. Jakbyś naprawdę znalazł taki błąd, to albo miałbyś dużo szczęścia, albo starą wersję, albo jedno i drugie :P |
|
jsc Temat założony przez niniejszego użytkownika |
» 2012-01-19 16:03:58 A dopiero jak teraz się bardziej przyjrzałem to widzę, że źle wywołuję sprawdzLiczbeMiejscZerowych (wyrazWolny, wspolczynnikA); |
|
« 1 » |