Загрузка данных
Да, понял тебя. Я буду делать именно под ваш курс, а не писать «красивый современный 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, сложных конструкций и прочего здесь специально нет. Это сделано под уровень ваших лекций и под требования практических: минимум строк и лишних переменных.