• 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

42 Warsaw Coding Academy
+1 głos
1,397 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,880 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,880 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,880 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 377 wizyt
pytanie zadane 3 maja 2016 w C i C++ przez wojtekw0703 Użytkownik (960 p.)
–1 głos
2 odpowiedzi 545 wizyt
pytanie zadane 28 sierpnia 2016 w C i C++ przez pewien_programista Obywatel (1,070 p.)
0 głosów
1 odpowiedź 337 wizyt

93,395 zapytań

142,388 odpowiedzi

322,566 komentarzy

62,753 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...