Znajdowanie największej i najmniejszej z wprowadzonych wartości

Odpowiedz Nowy wątek
2018-07-21 11:51

Rejestracja: 2 lata temu

Ostatnio: 5 miesięcy temu

0

Witam.
Od 2 dni ucze się c++. Proszę o wyrozumiałość. Polecenie mam takie. Napisz program zawierajacy petle while ktora w kazdym cyklu wczytuje tylko jedna liczbe double. Zdefiniuj 2 zmienne dzięki którym będziesz zapamietywał najwieksza i najmniejsza z wszystkich dotychczas ogladanych liczb. W kazdym cyklu petli drukuj wpisana liczbe. Jesli liczba ta akurat bedzie najwieksza lub najmniejsza ze wszystkich do tej pory wydrukuj komunikat ,, ta liczba byla najwieksza ,, lub ,, ta liczba byla najmniejsza" Cos tam staralem sie napisac. Ogolnie na razie bez uzycia tych 2 zmiennych... Ale wynik jest taki, że zawsze mi porownuje z poprzednia liczba a nie ze wszystkimi.

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
    double liczba;
    vector<double> liczby;
    cout << "Prosze podac liczbe" << endl;
    while (cin >> liczba) {
        liczby.push_back(liczba);
        cout << "Podana przec ciebie liczba to: " << liczba << endl;
        for (int i = 0; i < liczby.size(); ++i)
            if (i == 0 || liczby[i - 1] < liczby[i])
                cout << "To jest najwieksza liczba" << endl;
            else if (i == 0 || liczby[i - 1] > liczby[i])
                cout << "To jest najmniejsza liczba" << endl;
    }
    return 0;
}
edytowany 1x, ostatnio: kq, 2018-07-21 13:40

Pozostało 580 znaków

kq
2018-07-21 12:06
kq
Moderator C/C++

Rejestracja: 6 lat temu

Ostatnio: 3 minuty temu

Lokalizacja: Szczecin

1

Zdefiniuj 2 zmienne dzięki którym będziesz zapamietywał najwieksza i najmniejsza z wszystkich dotychczas ogladanych liczb.

Wskaż które to zmienne (podpowiedź: nie wykonałeś tego fragmentu zadania)

vector<double>liczby;

Wskaż fragment zadania nakazujący zapamiętać wszystkie dotychczas wprowadzone liczby (podpowiedź: nie ma takiej potrzeby)


edytowany 1x, ostatnio: kq, 2018-07-21 12:06

Pozostało 580 znaków

2018-07-21 15:01

Rejestracja: 12 lat temu

Ostatnio: 2 godziny temu

3

Przekombinowane. Nie potrzebujesz tablicy/vector-a.
Wystarczy zmienne trzymające maksimum i minimum.

#include <iostream>
#include <limits>
#include <algorithm>

using namespace std;

int main()
{
    double liczba;
    double maksimum = std::numeric_limits<double>::min();
    double minimum = std::numeric_limits<double>::max();

    cout << "Prosze podac liczby" << endl;
    while (cin >> liczba) {
           cout << liczba;
           if (liczba > maksimum) { 
                   // TODO:
                  …
           }
           if (liczba < minimum) { 
                   // TODO:
                  …
           }
           cout << '\n';
    }
    return 0;
}

Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.
edytowany 1x, ostatnio: MarekR22, 2018-07-21 15:17

Pozostało 580 znaków

Odpowiedz

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