warunek w pętli while a wczytywanie danych przez cin
Ostatnio zmodyfikowano 2017-08-05 20:44
rycho84 Temat założony przez niniejszego użytkownika |
warunek w pętli while a wczytywanie danych przez cin » 2017-08-05 18:40:59 Witam, rozwiązywałem jedno zadanie ze spoja i w nim musimy zastosować formułę na pobieranie danych ale nie wiemy ile będzie testów. Znalazłem rozwiązanie i cały kod wygląda tak: #include <iostream> #include <math.h> using namespace std;
float a,b,c,d,e; int tablica[50]; int i=0;
int main() {
while ( (cin>>a>>b>>c) && (cin.eof() == false))
{ d = pow(b,2)-(4*a*c); if (d == 0) tablica[i]=1; else if (d > 0 ) tablica[i]=2; else tablica[i]=0; i++; }
for (int j=0;j<i;j++) cout<<tablica[j]<<endl; return 0; }
dokładnie chodzi mi o to: while ( (cin>>a>>b>>c) && (cin.eof() == false)) w ten sposób to działa prawidłowo. Nie rozumie jednak tego w jaki sposób program wczytuje dane skoro cin jest w warunku funkcji? mógłby mi to ktoś wyjaśnić? |
|
Monika90 |
» 2017-08-05 19:05:36 powinno być while( cin >> a >> b >> c ) { }
Wyrażenie cin >> a >> b >> c użyte jako warunek przyjmie wartość true jeżeli udało się wczytać te trzy liczby, a wartość false w każdym innym przypadku. Na przykład w przypadku gdy nie ma już więcej danych. Nie wiesz ile będzie testów, ale założyłeś że nie więcej niż 50. Tablica nie jest potrzebna. |
|
rycho84 Temat założony przez niniejszego użytkownika |
» 2017-08-05 20:08:36 tablice utworzyłem, aby przetrzymywać wyniki, bo ogólnie ma wyglądać to tak: Wejście: 0.3 0.3 0.4 0.5 1 0.5 -0.5 -0.5 0
Wyjście: 0 1 2
Jest jakieś lepsze wyjście, aby nie stosować tablic? Ale wracając do tematu, to zastanawiało mnie czy wyrażenie cin >> a >> b >> c będąc warunkiem też wczyta dane, no ale wygląda na to że tak :) dzięki |
|
Monika90 |
» 2017-08-05 20:44:27 Można wypisywać wynik po wczytaniu każdej trójki, wszystko w jednej pętli. Jeżeli siedzisz przed komputerem i wpisujesz dane ręcznie to na ekranie będziesz widział wejście przemieszane z wyjściem, ale na SPOJU program sprawdza automat, który bierze pod uwagę tylko to co twój program zapisał na standardowe wyjście. |
|
« 1 » |