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

Czyżby błąd kompilatora?

Ostatnio zmodyfikowano 2012-01-19 16:03
Autor Wiadomość
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
C/C++
#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?
P-48711
akwes
» 2012-01-19 02:14:31
yyyy po prostu nie dziel przez zero ;) ?
P-48713
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 :)
P-48716
jsc
Temat założony przez niniejszego użytkownika
» 2012-01-19 10:51:10
A co z błędem?
P-48724
DejaVu
» 2012-01-19 13:09:34
Kolega już Ci napisał - nie dziel przez zero.
P-48735
pekfos
» 2012-01-19 15:06:32
Czyżby błąd kompilatora?
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
P-48747
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);
P-48750
« 1 »
  Strona 1 z 1