Felmérő - tömbök

Felmérő tömbökből 2026. ápr. 21-én, kedden.

Tétel

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

A változat

1.

Hány byte helyet foglal a memóriában az int t[120]-ként bejelentett tömb? (1p)

Megoldás: 120 * 4 = 480 Byte.

2.

Adott a bemeneten n, majd egy n elemű sorozat elemei. Írjunk programot, ami beolvassa ezeket egy tömbbe (az n legfeljebb 200), majd kiírja őket eredeti és fordított sorrendben is (jobbról balra)! (3x1p)

Megoldás:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;

int main()
{
    int t[200];
    int n;

    cin >> n;

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

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

    for (int i = n-1; i >= 0; i--)
        cout << t[i] << " ";

    return 0;
}

3.

Adott n, majd egy n elemű tömb, benne legalább egy páros és legalább egy páratlan elem. Írjuk ki a legkisebb páros elemet és ennek pozícióját, illetve a páratlan elemek összegét! (2x1p)

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
#include <iostream>
#include <climits>
using namespace std;

int main()
{
    int t[1000];
    int n;

    cin >> n;

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

    int osszeg = 0;
    int minimum = INT_MAX;

    for (int i = 0; i < n; i++) {
        if (t[i] % 2 == 0) {
            if (t[i] < minimum)
                minimum = t[i];
        }
        else {
            osszeg = osszeg + t[i];
        }
    }

    cout << "legkisebb paros: " << minimum << endl;
    cout << "paratlanok osszege: " << osszeg << endl;

    return 0;
}

4.

Adott egy n elemű tömb. Írjuk ki a páros indexen levő elemeket az indexek növekvő sorrendjében, majd a páratlan indexen levő elemeket az indexek csökkenő sorrendjében! Az elemek 1-től sorszámozottak. (1p)

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
#include <iostream>
#include <climits>
using namespace std;

int main()
{
    int t[1001];
    int n;

    cin >> n;

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

    for (int i = 1; i <= n; i++)
        if (i % 2 == 0)
            cout << t[i] << " ";

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

    cout << endl;
    return 0;
}

5.

Adott egy n elemű tömb. Hány olyan elempár alkotható az elemeiből, amelynek mindkét tagja osztható 5-tel? (Egy elem önmagával nem lehet párban.) (1p)

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
#include <iostream>
#include <climits>
using namespace std;

int main()
{
    int t[1000];
    int n;

    cin >> n;

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

    int db = 0;

    for (int i = 0; i < n; i++)
        for (int j = i+1; j < n; j++)
            if (t[i]%5 == 0 && t[j]%5 == 0)
                db++;

    cout << db << endl;
    return 0;
}

B változat

1.

Hány byte helyet foglal a memóriában az int t[130]-ként bejelentett tömb? (1p)

Megoldás: 130 * 4 = 520 Byte.

2.

Adott a bemeneten n, majd egy n elemű sorozat elemei. Írjunk programot, ami beolvassa ezeket egy tömbbe (az n legfeljebb 300), majd kiírja őket eredeti és fordított sorrendben is (jobbról balra)! (3x1p)

Megoldás:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;

int main()
{
    int t[200];
    int n;

    cin >> n;

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

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

    for (int i = n-1; i >= 0; i--)
        cout << t[i] << " ";

    return 0;
}

3.

Adott n, majd egy n elemű tömb, benne legalább egy páros és legalább egy páratlan elem. Írjuk ki a legkisebb páratlan elemet és ennek pozícióját, illetve a páros elemek összegét! (2x1p)

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
#include <iostream>
#include <climits>
using namespace std;

int main()
{
    int t[1000];
    int n;

    cin >> n;

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

    int osszeg = 0;
    int minimum = INT_MAX;

    for (int i = 0; i < n; i++) {
        if (t[i] % 2 == 0) {
            osszeg = osszeg + t[i];
        }
        else {
            if (t[i] < minimum)
                minimum = t[i];
        }
    }

    cout << "legkisebb paratlan: " << minimum << endl;
    cout << "parosak osszege: " << osszeg << endl;

    return 0;
}

4.

Adott egy n elemű tömb. Írjuk ki a páratlan indexen levő elemeket az indexek növekvő sorrendjében, majd a páros indexen levő elemeket az indexek csökkenő sorrendjében! Az elemek 1-től sorszámozottak. (1p)

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
#include <iostream>
#include <climits>
using namespace std;

int main()
{
    int t[1001];
    int n;

    cin >> n;

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

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

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

    cout << endl;
    return 0;
}

5.

Adott egy n elemű tömb. Hány olyan elempár alkotható az elemeiből, amelynek mindkét tagja páros? (Egy elem önmagával nem lehet párban.) (1p)

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
#include <iostream>
#include <climits>
using namespace std;

int main()
{
    int t[1000];
    int n;

    cin >> n;

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

    int db = 0;

    for (int i = 0; i < n; i++)
        for (int j = i+1; j < n; j++)
            if (t[i]%2 == 0 && t[j]%2 == 0)
                db++;

    cout << db << endl;
    return 0;
}