Felmérő - tömbök - 1

Tétel

2 pont hivatalból. Munkaidő: 45 perc.

1.

Írjunk programot, amely beolvas egy tömböt, törli belőle az első 5-ös elemet, majd kiírja a tömböt, aztán törli az összes 2-est, majd ismét kiírja a tömböt! (2x1p törlések + 1p a beolvasás, kiírás)

Példa

	bemenet: 9
			 1 2 5 2 5 3 2 5 1
	kimenet: 1 2 2 5 3 2 5 1
			 1 5 3 5 1

Megoldás:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <iostream>
using namespace std;

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

    int t[100];
    for (int i = 0; i < n; i++)
        cin >> t[i];

    int elso_otos_helye = -1;

    for (int i = 0; i < n; i++)
        if (t[i] == 5 && elso_otos_helye == -1)
            elso_otos_helye = i;

    if (elso_otos_helye != -1) {
        for (int j = elso_otos_helye+1; j < n; j++)
            t[j-1] = t[j];

        n--;
    }

    for (int i = 0; i < n; i++)
        cout << t[i] << " ";
    cout << endl;

    int i = 0;
    while (i < n)
        if (t[i] == 2) {
            // töröljük t[i]-t
            for (int j = i+1; j < n; j++)
                t[j-1] = t[j];

            n--;
            // i++ nincs!
        }
        else
            i++;

    for (int i = 0; i < n; i++)
        cout << t[i] << " ";
    cout << endl;

    return 0;
}

2.

Írjunk programot, ami egy tömbben a felhasználó által megadott pozícióra (0-tól sorszámozva) beszúr egy szintén a felhasználó által megadott elemet. Kövessük nyomon az elkészült program futását egy bizonyos bemenetre (táblázat a változók értékeinek változásával)! (2x1p)

Megoldás:

lásd a beszúrásoknál

3.

Írjunk kódrészletet, ami az n elemű t[] tömbről ellenőrzi, hogy minden eleme osztható-e tízzel, és ennek megfelelően kiír egy igen/nem üzenetet! (1p)

Megoldás:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
bool ok = true;

for (int i = 0; i < n; i++)
    if (t[i] % 10 != 0)
        ok = false;

if (ok)
    cout << "igen" << endl;
else
    cout << "nem" << endl;

4.

Írjunk kódrészletet, ami az n elemű t[] tömbről ellenőrzi, hogy szigorúan csökkenő sorrendben vannak-e az elemei! Írjuk ki a megfelelő igen/nem üzenetet. (1p)

Megoldás:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
bool ok = true;

for (int i = 1; i < n; i++)
    if (t[i] >= t[i-1])
        ok = false;

if (ok)
    cout << "igen" << endl;
else
    cout << "nem" << endl;

5.

Írjunk kódrészletet, ami az n elemű t[] tömb páratlan elemeit fordított sorrendben írja ki! (1p)

Megoldás:

1
2
3
for (int i = n-1; i >= 0; i--)
    if (t[i] % 2 != 0)
        cout << t[i] << " ";