Сформировать статический массив из n элементов с помощью датчика
случайных чисел (n задается пользователем с клавиатуры).
2.2 Распечатать полученный массив.
2.3 Выполнить удаление минимального элемента из массива.
2.4 Добавить Элемент с номером К в конец массива.
2.6 Вывести полученный результат.
2.7 Поменять местами минимальный и максимальный элементы.
2.8 Вывести полученный результат.
2.9 найти Элемент равный среднему арифметическому элементов массива (округлить).
2.10 Вывести полученный результат.
При решении задач объявлять статический массив на 100 элементов, но формировать массив из n элементов, n<100.
4.2 Ввод значений n, K, M, P, R осуществлять с клавиатуры.
4.3 Вывод результатов должен выполняться после выполнения каждого
задания. Элементы массива выводить в строчку, разделяя их между собой
табуляцией.
4.4 При выполнении добавления элементов в массив формировать их значения
случайным образом, если в задании не сказано другое.
C/C++
Помощь с Массивами C++
#include <iostream>
using namespace std;
void arr_fill(int* arr, size_t size) //заполнение массива
{
srand(time(NULL));
for (size_t i = 0; i < size; i++) arr[i] = rand() % 101 - 50;
}
void arr_print(int* arr, size_t size) //печать элементов
{
for (size_t i = 0; i < size; i++) cout << arr[i] << "\t";
cout << endl;
}
void arr_del_2(int* arr, size_t& size, size_t index) //удаление элемента
{
if (index >= size)
{
cout << "такого элемента нет в массиве!\n"; return;
}
for (size_t i = index; i < size - 1; i++)
arr[i] = arr[i + 1];
size--;
}
void arr_add(int* arr, size_t& size, size_t k) //добавление элемента
{
if (size >= 100 || k >= size) { cout << "невозможно добавить новый элемент!\n"; return; }
arr[size] = arr[k];
size++;
}
size_t find_min_max(int* arr, size_t size, bool min = false)
{
size_t pos = 0;
for (size_t i = 1; i < size; i++) if (min ? arr[pos]<arr[i] : arr[pos]>arr[i]) pos = i;
return pos;
}
size_t arr_find(int* arr, size_t size) //находит индекс элемента равного среднему арифм или -1 если не найден
{
int summ = 0;
for (size_t i = 0; i < size; i++) summ += arr[i];
summ = summ / size;
for (size_t i = 0; i < size; i++) if (arr[i] == summ) return i;
return -1;
}
int main()
{
setlocale(0, "");
int arr[100]{}; //статический массив на 100 элементов 2.1
size_t n;
size_t k;
cout << "введите размер массива (не более 100):\n";
cin >> n;
if (n > 100)
{
cout << "Размер превышает допустимый!"; return 1;
}
arr_fill(arr, n);
arr_print(arr, n); //2.2
arr_del_2(arr, n, find_min_max(arr, n, false)); //2.3
arr_print(arr, n);
cout << "Введите номер элемента, который следует добавить\n";
cin >> k;
arr_add(arr, n, k); //2.4
arr_print(arr, n); //2.6
swap(arr[find_min_max(arr, n, true)], arr[find_min_max(arr, n)]); //2.7
arr_print(arr, n); //2.8
cout << "Элемент равный среднему арифметическому:\n";
if (arr_find(arr, n) != -1) cout << arr[arr_find(arr, n)];
else cout << " не найден!"; //2.9 / 2.10
}
using namespace std;
void arr_fill(int* arr, size_t size) //заполнение массива
{
srand(time(NULL));
for (size_t i = 0; i < size; i++) arr[i] = rand() % 101 - 50;
}
void arr_print(int* arr, size_t size) //печать элементов
{
for (size_t i = 0; i < size; i++) cout << arr[i] << "\t";
cout << endl;
}
void arr_del_2(int* arr, size_t& size, size_t index) //удаление элемента
{
if (index >= size)
{
cout << "такого элемента нет в массиве!\n"; return;
}
for (size_t i = index; i < size - 1; i++)
arr[i] = arr[i + 1];
size--;
}
void arr_add(int* arr, size_t& size, size_t k) //добавление элемента
{
if (size >= 100 || k >= size) { cout << "невозможно добавить новый элемент!\n"; return; }
arr[size] = arr[k];
size++;
}
size_t find_min_max(int* arr, size_t size, bool min = false)
{
size_t pos = 0;
for (size_t i = 1; i < size; i++) if (min ? arr[pos]<arr[i] : arr[pos]>arr[i]) pos = i;
return pos;
}
size_t arr_find(int* arr, size_t size) //находит индекс элемента равного среднему арифм или -1 если не найден
{
int summ = 0;
for (size_t i = 0; i < size; i++) summ += arr[i];
summ = summ / size;
for (size_t i = 0; i < size; i++) if (arr[i] == summ) return i;
return -1;
}
int main()
{
setlocale(0, "");
int arr[100]{}; //статический массив на 100 элементов 2.1
size_t n;
size_t k;
cout << "введите размер массива (не более 100):\n";
cin >> n;
if (n > 100)
{
cout << "Размер превышает допустимый!"; return 1;
}
arr_fill(arr, n);
arr_print(arr, n); //2.2
arr_del_2(arr, n, find_min_max(arr, n, false)); //2.3
arr_print(arr, n);
cout << "Введите номер элемента, который следует добавить\n";
cin >> k;
arr_add(arr, n, k); //2.4
arr_print(arr, n); //2.6
swap(arr[find_min_max(arr, n, true)], arr[find_min_max(arr, n)]); //2.7
arr_print(arr, n); //2.8
cout << "Элемент равный среднему арифметическому:\n";
if (arr_find(arr, n) != -1) cout << arr[arr_find(arr, n)];
else cout << " не найден!"; //2.9 / 2.10
}
Похожие вопросы
- Двумерные массивы C++, ничего не понимаю((( Нужна помощь
- Задание массивы c++
- Помогите дописать код с массивом C++
- Помогите дописать код с массивом c++
- Объясните мне разное поведение sizeof для статической константы и динамического массива. C.
- Массивы c++, нужно написать программу
- Программирование алгоритмов с использованием двумерных массивов c++
- Каким образом можно удалить элементы из динамического массива C++(без использования вспомогательного массива)
- Двумерный массив C++
- Сделать перестановку чисел с помощью функции в C++, но у меня получается чепуха
15
-24 -9 1 20 33 -36 48 36 37 12 7 -18 -49 45 -27
-24 -9 1 20 33 -36 48 36 37 12 7 -18 45 -27
Введите номер элемента, который следует добавить 1
-24 -9 1 20 33 -36 48 36 37 12 7 -18 45 -27 -9
-24 -9 1 20 33 48 -36 36 37 12 7 -18 45 -27 -9
Элемент равный среднему арифметическому:
7