Jak wprowadzić do kodu nieograniczoną liczbę danych?

0

Robie zadanie na SPOj'u. Nie wiem jak napisać warunek który kończyłby pentlę po zakończeniu wprowadzania nieokreślonej liczby zestawów danych.
Tu jest mój kod:
Macie jakiś pomysł jak to naprawić?

 



    include <iostream>
    include <vector>
    include <math.h>


using namespace std;

float delta,a , b, c;
vector<float> lista;

int main()
{
while( cin>>a>>b>>c )
    {
        delta=pow(a,2)-4*b*c;
        if(delta>0) lista.push_back(2);
        else if(delta==0) lista.push_back(1);
        else lista.push_back(0);
    }

    for(size_t i=0; i<lista.size();i++)
    {
        cout<<lista[i]<<endl;
    }

    return 0;
} 
0

To powinno zadziałać:

#include <iostream>
using namespace std;
 
int main()
  {
   for(double a,b,c,d;cin>>a>>b>>c;cout<<((d>=0)+(d>0))<<endl) d=a*a-4*b*c;
   return 0;
  }
0

Problemem nie jest to, że program nie działa, tylko nie wiem jaki warunek postawić w 'while' żeby po wprowadzeniu nieokreślonej liczby danych pierwsza pętla zakończyła się i zaczęła sie wykonywać pętla druga

0
  1. Ten warunek który masz jest poprawny i wystarczający aby pętla się skończyła po zakończeniu się danych (czyli EOF)
  2. SPOJ sam rozdziela wejście od wyjścia, więc nie musisz robić tego sztucznie
  3. Nie używaj float ponieważ ma on zbyt małą precyzje, był wymyślony tylko po to aby zmniejszyć ilość używanej pamięci
  4. Tworzysz wektor wartości typu float aby trzymać tam wartość 0,1 lub 2 ? WTF?
  5. Zmienne globalne wtedy kiedy absolutnie nie potrzebne? WTF?
  6. Nie używaj i++ wtedy kiedy możesz użyć ++i, ten brzydki nawyk niejednokrotnie się zemści
  7. Jeżeli chcesz "zatrzymać" swoją pierwszą pętle pod windows'ami to wciśnij <Ctrl-Z><Enter> na pustym wierszu.
0

Dziękuję bardzo za porady, będę się z pewnością do nich stosował w przyszłości.
Myślałem po prostu, że muszę najpierw pobrać wszystkie zestawy danych a dopiero potem je po kolei wypisać, dziękuje jeszcze raz

0

Na spoju mi taka pętla nie przechodziła.
Użyj while(!(cin.eof()))

1 użytkowników online, w tym zalogowanych: 0, gości: 1