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

Co jest nie tak z moim kodem? Polski SPOJ

Object Storage Arubacloud
+1 głos
920 wizyt
pytanie zadane 29 lipca 2016 w C i C++ przez mat1911 Nowicjusz (230 p.)

Witam. Uczę się programować i staram się zrobić to zadanie: http://pl.spoj.com/problems/ROWNANIE/. Wydaje mi się, że wszystko jest w porządku, a jednak podczas sprawdzanie wyświetla mi się błąd rozwiązania.

int main(int argc, char *argv[])
{
    double a,b,c,delta;
    int w=0;
    
   for(int i=1; i<=3; i++)
   {
      cin>>a>>b>>c;
      delta=(b*b)-(4*a*c);
      if(delta>0)
      w=2;
      else if(delta==0)
      w=1;
      else if(delta<0)
      w=0;
      
      cout<<w<<endl;       
   }       

 

3 odpowiedzi

0 głosów
odpowiedź 29 lipca 2016 przez Szykem2 Nałogowiec (29,510 p.)
wybrane 29 lipca 2016 przez mat1911
 
Najlepsza

Na wejście programu podana zostanie pewna nieokreślona, ale niewielka ilość zestawów danych.

Skoro w przykładzie są trzy to nie znaczy, że zostaną podane trzy zestawy, co jeśli zostanie podane 8? Musisz zrobić dla nieokreślonej liczby zestawów.(Użyj pętli while)

komentarz 29 lipca 2016 przez mat1911 Nowicjusz (230 p.)
Dziękuję!
0 głosów
odpowiedź 29 lipca 2016 przez Kornelia Kobiela Nałogowiec (33,340 p.)

Twój program działa tylko dla 3 zestawów danych. 

Na wejście programu podana zostanie pewna nieokreślona, ale niewielka ilość zestawów danych.

Musisz tę część inaczej rozwiązać 

komentarz 29 lipca 2016 przez mat1911 Nowicjusz (230 p.)
Dziękuję!
0 głosów
odpowiedź 29 lipca 2016 przez Wi_ktos Bywalec (2,950 p.)
Moim zdaniem sprawa tutaj jest bardziej skomplikowana ponieważ mamy nieokreśloną liczbę zestawów współczynników. Warto by zastosować dynamiczna alokacje tablic co pozwoli aby to użytkownik zdecydował sam ile takich zestawów chce podać a na koniec program wypisze odpowiedni ciąg ! Ja zadanie rozumiem tak ze najpierw podajemy zestawy współczynników a dopiero potem podajemy ten ciąg a twój problem od razu podaje ilość rozwiązań dla danego zestawu współczynników i nie możesz wygenerować ostatecznego ciągu.
komentarz 29 lipca 2016 przez Grzyboo Nałogowiec (28,860 p.)
Nie trzeba, w tych zadaniach możemy użyć while(cin >> ...)
komentarz 29 lipca 2016 przez Wi_ktos Bywalec (2,950 p.)
Hmmm tylko czy wynikiem programu, po podaniu tych zestawów, nie ma być ciąg, to znaczy ostatecznie po tym jak użytkownik skończy prace z programem (poda swoją dowolną ilość zestawów) to ukaże mu się ciąg rozwiązań w zależności od zestawów. Pętli tylko i wyłącznie na samym końcu poda ilość rozwiązań ale potem użytkownik znowu musi zaingerować i podać kolejny zestaw. Chodzi mi o to że rozumiem to zadanie tak , że to użytkownik najpierw podaje swoje zestawy a następnie program podaje mu ciąg rozwiązań i nie ma tej wymiany użytkownik - program.
komentarz 29 lipca 2016 przez Grzyboo Nałogowiec (28,860 p.)
Nie, na SPOJu input i output jest rozdzielony. Można wyświetlać wszystko na końcu, ale można też naprzemiennie; zbierać informacje od użytkownika i wyświetlać je.
komentarz 29 lipca 2016 przez Wi_ktos Bywalec (2,950 p.)

OK , w takim razie wszystko gra . Nowy i nie za bardzo jeszcze łapie co i jak  wink

czyli taki kod jest ok ?

#include <iostream>

using namespace std;

int main()
{
    double a, b, c, delta;      //wspolczynniki i delta

    for( ; ; )
    {

    cout << "Podaj wartosci wspolczynnikow : \n";       //podawanie wartosci
    cin >> a >> b >> c;

        delta = (b * b) - (4 * a * c);                  //obliczanie delty

        if(delta > 0)  cout<<"Liczba rozwiazan wynosi 2\n";         
        else if(delta == 0)  cout<<"Liczba rozwiazan wynosi 1\n";
        else if(delta < 0)  cout<<"Liczba rozwiazan wynosi 0\n";

    }

    return 0;
}

komentarz 29 lipca 2016 przez Grzyboo Nałogowiec (28,860 p.)
Nie

while(cin >> a >> b >> c)

zamiast for(;;) i oczywiście usunięcie odpowiedniej linijki w bloku pętli.
komentarz 29 lipca 2016 przez Wi_ktos Bywalec (2,950 p.)
Przecież efekt jest ten sam :/.

Podobne pytania

0 głosów
2 odpowiedzi 255 wizyt
pytanie zadane 3 maja 2016 w C i C++ przez wojtekw0703 Użytkownik (960 p.)
–1 głos
2 odpowiedzi 227 wizyt
pytanie zadane 28 sierpnia 2016 w C i C++ przez pewien_programista Obywatel (1,070 p.)

92,538 zapytań

141,377 odpowiedzi

319,456 komentarzy

61,923 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...