• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed SPOJ - równanie liniowe

0 głosów
65 wizyt
pytanie zadane 14 sierpnia w C i C++ przez cupoforanges Nowicjusz (170 p.)
zamknięte 6 dni temu przez cupoforanges
#include <iostream>
#include <cmath>
#include <iomanip>

using namespace std;
//jezeli chodzio o pierwszy if
//to jezeli pomnozymy przez odwrotnosc wspolczynnik
//przy x to rownanie sie rozwiazuje
float a, b, c;
float d;

int main()
{
    cin >> a >> b >> c;

    if((a!=0)&&(a!=1)&&(b!=c))
    {
        d = pow(a,-1);
       // cout << (c-b)*d << endl;
        cout<<setprecision(4)<<(c-b)*d<<endl;

    }

    else if((a!=0)&&(a!=1)&&(b==c))
    {
       cout << 0 << endl;

    }

    else if((a==0)&&(b!=c))
    {
        cout << "BR" << endl;
    }

    else if ((a==0)&&(b==c))
    {
        cout << "NWR" << endl;
    }

    else if((a==1)&&(b!=c))
    {
        cout << c-b << endl;
    }

    return 0;
}

Dzień dobry wieczór

Od pewnego czasu mierzę się już z tym zadaniem, wydaje mi się, że wszystko jest w porządku i, że rozważyłem wszystkie możliwe przypadki, mimo tego spoj cały czas nie zalicza. Proszę o pomoc lub ewentualny pomysł na inny sposób rozwiązania.

link do zadania: https://pl.spoj.com/problems/JROWLIN/

pozdrawiam

komentarz zamknięcia: Rozwiązano
1
komentarz 14 sierpnia przez Hipcio Szeryf (98,160 p.)

@cupoforanges nie może być setprecision(4) - poczytaj w dokumentacji jak to działa. Użyj std::fixed i std::setprecision(2) tak jak napisałem wcześniej.

komentarz 14 sierpnia przez cupoforanges Nowicjusz (170 p.)

Dziękuję wam za pomoc! W końcu zadziałało!

Oto działający kod jeśli jesteście ciekawi:

 

 

#include <iostream>
#include <cmath>
#include <iomanip>

using namespace std;

long double a, b, c;

int main()
{
    cin >> a >> b >> c;

    if((a!=0))
    {
        cout << fixed;
        cout << setprecision(2);
        if((a!=1)&&(b!=c)) cout<<(c-b)/a;
        //else if((a==1)&&(b!=c) cout << c-b;
        else if(a==1)
        {
            if(b!=c) cout << c-b;

            else cout << 0;
        }
    }

    else if(a==0)
    {
        if((b!=c)){cout << "BR";}
        else{cout << "NWR";}
    }

    //else cout << c-b;

    return 0;
}

 

komentarz 14 sierpnia przez cupoforanges Nowicjusz (170 p.)
A i jeszcze takie pytanie. Mam rozumieć, że setprecision(x) ma być zawsze poprzedzone cout <<fixed? (Mam na myśli przypadek z zaokrąglaniem) I jak jest różnica pomiędzy setprecision(4), fixed setprecision(2), przecież z tego co zaobserwowałem to jest to samo
1
komentarz 14 sierpnia przez Hipcio Szeryf (98,160 p.)

std::fixed i std::setprecision zmienia sposób formatowania na stałe, więc nie musisz go używać za każdym razem. Jeżeli chcesz wrócić do poprzedniego formatowania użyj std::defaultfloat. 

 I jak jest różnica pomiędzy setprecision(4), fixed setprecision(2), przecież z tego co zaobserwowałem to jest to samo

#include <iostream>
#include <iomanip>

int main() {
	float number1 = 1245.1234;
	std::cout << std::setprecision(4) << number1 << "\n";
	std::cout << std::fixed << std::setprecision(2) << number1 << "\n";
}
komentarz 6 dni temu przez cupoforanges Nowicjusz (170 p.)
Dzięki za pomoc!

Podobne pytania

0 głosów
1 odpowiedź 112 wizyt
pytanie zadane 4 lutego 2018 w C i C++ przez pewien_programista Obywatel (1,050 p.)
0 głosów
3 odpowiedzi 81 wizyt
pytanie zadane 10 lipca w Java przez Marcinek69 Początkujący (450 p.)
0 głosów
0 odpowiedzi 70 wizyt
pytanie zadane 5 grudnia 2018 w SPOJ przez Shimeo7 Obywatel (1,850 p.)
Porady nie od parady
Odznacz odpowiedź zieloną fajką, jeśli uważasz, że jest ona najlepsza ze wszystkich i umożliwiła ci rozwiązanie problemu.Najlepsza odpowiedź

65,728 zapytań

112,369 odpowiedzi

237,231 komentarzy

46,688 pasjonatów

Przeglądających: 182
Pasjonatów: 4 Gości: 178

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...