Загрузка данных


Да, понял тебя. Я буду делать именно под ваш курс, а не писать «красивый современный C++» с кучей вещей, которые вы ещё не проходили.

По лекции 6 сейчас у вас: new, delete, new[], delete[], указатели, динамические массивы и обычные циклы. В самой лекции даны 5 задач.  

Вот все 5 максимально простыми, без комментариев и без названий типа uniqueVisitorsCount — обычные a, b, c, как написал бы новичок.


---

1. Массив в обратном порядке

#include <iostream>
using namespace std;

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

    int* a = new int[n];

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

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

    delete[] a;

    return 0;
}

Например:

5
1 2 3 4 5

Вывод:

5 4 3 2 1


---

2. Сумма элементов массива

#include <iostream>
using namespace std;

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

    int* a = new int[n];

    for (int i = 0; i < n; i++) {
        cin >> a[i];
        b = b + a[i];
    }

    cout << b;

    delete[] a;

    return 0;
}

Например:

4
2 5 3 10

Вывод:

20


---

3. Количество уникальных посетителей

Посетители могут повторяться. Нужно посчитать, сколько разных номеров было введено. 

#include <iostream>
using namespace std;

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

    int* a = new int[n];

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

    for (int i = 0; i < n; i++) {
        int c = 0;

        for (int j = 0; j < i; j++)
            if (a[i] == a[j])
                c++;

        if (c == 0)
            b++;
    }

    cout << b;

    delete[] a;

    return 0;
}

Например:

6
10 20 10 30 20 40

Разные посетители:

10 20 30 40

Ответ:

4


---

4. Посещаемость студентов

Нужно найти:

сколько студентов имеют максимальную посещаемость;

сколько имеют посещаемость ниже средней. 


#include <iostream>
using namespace std;

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

    int* a = new int[n];

    int b = 0;

    for (int i = 0; i < n; i++) {
        cin >> a[i];
        b = b + a[i];
    }

    int c = a[0];

    for (int i = 1; i < n; i++)
        if (a[i] > c)
            c = a[i];

    int d = 0;

    for (int i = 0; i < n; i++)
        if (a[i] == c)
            d++;

    double e = (double)b / n;

    int f = 0;

    for (int i = 0; i < n; i++)
        if (a[i] < e)
            f++;

    cout << d << endl;
    cout << f;

    delete[] a;

    return 0;
}

Например:

5
10 8 10 6 7

Максимум = 10, таких студентов 2.

Среднее = 8.2, ниже среднего: 8, 6, 7 → 3.

Вывод:

2
3


---

5. Удаление товаров

Есть 10 товаров с уникальными ID. Пользователь вводит, сколько товаров нужно удалить, потом их ID. Оставшиеся выводим. 

#include <iostream>
using namespace std;

int main() {
    int* a = new int[10];

    for (int i = 0; i < 10; i++)
        cin >> a[i];

    int n;
    cin >> n;

    for (int i = 0; i < n; i++) {
        int b;
        cin >> b;

        for (int j = 0; j < 10; j++) {
            if (a[j] == b) {
                for (int k = j; k < 9; k++)
                    a[k] = a[k + 1];

                a[9] = 0;
                break;
            }
        }
    }

    for (int i = 0; i < 10; i++)
        if (a[i] != 0)
            cout << a[i] << " ";

    delete[] a;

    return 0;
}

Например:

1 2 3 4 5 6 7 8 9 10
3
3 7 10

Вывод:

1 2 4 5 6 8 9

Что здесь главное из лекции 6

Вот эти вещи тебе нужно узнавать в коде:

int* a = new int[n];

→ создали динамический массив на n элементов.

delete[] a;

→ удалили динамический массив из памяти.

Именно new[] используется для создания динамического массива, а delete[] — для его удаления. 

И да — никаких комментариев, функций, vector, set, sort, auto, сложных конструкций и прочего здесь специально нет. Это сделано под уровень ваших лекций и под требования практических: минимум строк и лишних переменных.