﻿/*
    Sorozatokkal kapcsolatos feladatok


Beolvasás:
    1. megadási mód:
        meg van adva az elemek száma, ezt követi
        annyi darab elem

    Pl. feladat: Adott a bemeneten egy n természetes
    szám (n <= 10000), majd n darab egész. Írjuk
    ki az összegüket!
*/
/*
#include <iostream>
using namespace std;

int main()
{
    int n, elem, ossz = 0;
    cin >> n;

    for (int i = 1; i <= n; i++) {
        cin >> elem;
        ossz += elem;
    }

    cout << ossz << endl;


    return 0;
}
*/

// ugyanaz átlaggal
/*
#include <iostream>
using namespace std;

int main()
{
    int n, elem, ossz = 0;
    cin >> n;

    for (int i = 1; i <= n; i++) {
        cin >> elem;
        ossz += elem;
    }

    cout << (double)ossz / n << endl;


    return 0;
}
*/
// másképp:
/*
#include <iostream>
using namespace std;

int main()
{
    int n, elem;
    double ossz = 0;
    cin >> n;

    for (int i = 1; i <= n; i++) {
        cin >> elem;
        ossz += elem;
    }

    cout << ossz / n << endl;


    return 0;
}
*/


/* HF
    Adott n és n darab egész (lesz legalább
    két különböző érték a sorozatban). A számok
    elférnek int-en.
        a) mennyi a legnagyobb érték?
        b) hányadik helyen jelent meg először ez a
           legnagyobb érték?
        c) mennyi a második legnagyobb érték?

    Pl.
        8
        1 3 3 4 5 5 4 4 3
        Kimenet:
            legnagyobb: 5
            először az 5. helyen volt
            második legnagyobb érték a 4
*/

/*
#include <iostream>
#include <climits>
using namespace std;

int main()
{
    int n;
    cin >> n;

    int max1 = INT_MIN;
    int max2 = INT_MIN;
    int hely;

    for (int i = 1; i <= n; i++) {
        int elem;
        cin >> elem;

        if (elem > max1) {
            max2 = max1;
            max1 = elem;
            hely = i;
        }
        else if (elem > max2 && elem != max1)
            max2 = elem;
    }

    cout << "legnagyobb: " << max1 << endl;
    cout << "helye: " << hely << endl;
    cout << "masodik legnagyobb: " << max2 << endl;


    return 0;
}
*/

/*
    2. megadási mód:
        - nem tudjuk az elemek számát, addig olvasunk,
        míg valaki be nem zárja a bemenetet
        - bemenet lezárása:
            Windows: Ctrl+Z,  Enter
            Linux: Ctrl+D
*/
// Pl. olvassunk addig, míg el nem fogynak az elemek,
// írjuk ki, hogy hány darab volt:
/*
#include <iostream>
using namespace std;

int main()
{
    int szam;
    int db = 0;

    while (cin >> szam) {
        db++;
    }

    cout << "vege, ennyi volt: " << db << endl;

    return 0;
}
*/

/*
Megjegyzések:

- a "cin >> szam" beolvasó kifejezést lehet feltételként
használni, true lesz, ha sikerült a beolvasás, false
ha nem

- a bemenet lezárása (Ctrl+Z, Enter) után minden beolvasás
sikertelen lesz
*/



/*
    3. megadási mód:
        - előre meghatározott feltétel teljesüléséig
        olvasunk (pl. "amíg egy -1 érkezik")
*/

// Pl. Olvassunk be számokat és adjuk őket össze,
// a bemenet végét egy -1-es fogja jelezni (mely
// nem része az összegnek).

#include <iostream>
using namespace std;

int main()
{
    int osszeg = 0;
    int szam;

    cin >> szam;

    while (szam != -1) {

        osszeg += szam;

        cin >> szam;
    }

    cout << "osszeg: " << osszeg << endl;

    // megj. ez után még lehet olvasni, ha kell, pl.
    cout << "most ird be, hogy ketto: ";
    int x;
    cin >> x;
    if (x == 2)
        cout << "ugyes" << endl;
    else
        cout << "hat ez nem jott ossze..." << endl;


    return 0;
}

// Másképp:
/*
#include <iostream>
using namespace std;

int main()
{
    int osszeg = 0;

    bool allj_meg = false;

    while (!allj_meg) {
        int szam;
        cin >> szam;

        if (szam == -1) {
            allj_meg = true;
        }
        else
            osszeg += szam;
    }

    cout << "osszeg: " << osszeg << endl;

    return 0;
}
*/


/* HF:

1. Olvassunk be számokat, míg be nem záródik a bemenet!
Határozzuk meg minden másodiknak az összegét!

    Pl:   10 20 30 40  (vége)
        kimenet: 60    (mert 20+40 == 60)

2. Olvassunk be természetes számokat, míg -1-et nem
kapunk! Írjuk ki, hogy hány prím van köztük!

3. Olvassunk be természetes számokat, míg -1-et nem
kapunk! Írjuk ki, hogy hányszor fordult elő, hogy
két egymás melletti szám egyenlő?

    Pl.  1 2 2 3 4 4 4 5 -1
        Kimenet: 3      (2-2, 4-4, 4-4)
*/
