Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

warunek w pętli while a wczytywanie danych przez cin

Ostatnio zmodyfikowano 2017-08-05 20:44
Autor Wiadomość
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ć?
P-163837
Monika90
» 2017-08-05 19:05:36
powinno być
C/C++
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.
P-163838
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
P-163840
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.
P-163841
« 1 »
  Strona 1 z 1