Выведите заданную матрицу в виде спирали, разделив матрицу на циклы



бет7/7
Дата16.10.2023
өлшемі73,49 Kb.
#115868
1   2   3   4   5   6   7
Выполнение итерации по массиву
std::array будучи контейнером STL, может использовать цикл for на основе диапазона, аналогичный другим контейнерам, таким как vector
int main() {
std::array arr = { 1, 2, 3 };
for (auto i : arr)
cout << i << '\n';
}


Проверка размера массива
Одно из главных преимуществ std::array по сравнению с C стилем array заключается в том, что мы можем проверить размер массива с помощью size() функции-члена
int main() {
std::array arr = { 1, 2, 3 };
cout << arr.size() << endl;
}
Одновременное изменение всех элементов массива
Функция-член fill() может быть использована на std::array для изменения значений сразу после инициализации
int main() {
std::array arr = { 1, 2, 3 };
// change all elements of the array to 100
arr.fill(100);
}
Вы можете отсортировать std::array, используя функцию std::sort(), которая находится в заголовочном файле algorithm:
#include
#include
#include // для std::sort
int main()
{
std::array myarray { 8, 4, 2, 7, 1 };
std::sort(myarray.begin(), myarray.end()); // сортировка массива по возрастанию
// std::sort(myarray.rbegin(), myarray.rend()); // сортировка массива по убыванию
for (const auto &element : myarray)
std::cout << element << ' ';
return 0;
}
Результат:
1 2 4 7 8
Функция сортировки использует итераторы, которые мы еще не рассматривали. О них мы поговорим несколько позже.


Заключение


std::array — это отличная замена стандартных фиксированных массивов. Массивы, созданные с помощью std::array, более эффективны, так как используют меньше памяти. Единственными недостатками std::array по сравнению со стандартными фиксированными массивами являются немного неудобный синтаксис и то, что нужно явно указывать длину массива (компилятор не будет вычислять её за нас).

Варианты заданий



  1. Дан двумерный массив. Найти минимальную сумму элементов строки. Задачу решить без использования дополнительного одномерного массива.

  2. Определить координаты элемента, наиболее близкого к среднему значению всех элементов массива.

  3. Определить, имеются ли в двумерном массиве только два одинаковых элемента.

  4. Дан двумерный массив. Определить максимальный номер строки, состоящей только из элементов, кратных числу а.

  5. Определить, есть ли в двумерном массиве столбец, в котором равное количество положительных и отрицательных элементов.

  6. Определить, является ли квадратный массив симметричным относительно своей главной диагонали.

  7. В квадратном массиве выделим четыре четверти, ограниченные главной и побочной диагоналями (без учета элементов, расположенных на диагоналях). Найти сумму элементов верхней четверти.

  8. В каждом столбце двумерного массива поменять местами первый отрицательный элемент и последний нулевой.

  9. Дан двумерный массив из четного числа столбцов. Столбцы левой половины массива поменять местами со столбцами правой половины.

  10. Дан двумерный массив. Удалить из него все строки с четными номерами. Под удалением строки двумерного массива следует понимать исключение этой строки из массива путем смещения всех сле-дующих за ней строк на одну вверх и присвоение всем элементам последней строки значения 0.

  11. В двумерный массив вставить два столбца из нулей: первый перед столбцом с номером k, второй - после него. Под вставкой заданного столбца после столбца с номером s следует понимать смещение всех столбцов после s-го на один вправо и присваивание заданных значений элементам s+1-го столбца.

  12. Дан двумерный массив размером n?n. Сформировать одномерный массив из элементов заданного массива, расположенных над побочной диагональю.

  13. Дан двумерный массив. Найти номера двух соседних столбцов, сумма элементов в которых минимальна.

  14. Для каждой строки двумерного массива выяснить количество элементов, последняя цифра которых равна а.

  15. Даны два двумерных массива. Перемножить их как матрицы. Результат записать в третий массив.

  16. Переставляя строки и столбцы двумерного массива, добиться того, чтобы наибольший элемент (один из них) оказался в верхнем левом углу.

  17. Для двумерного массива а получить одномерный массив, присвоив его k-му элементу значение 1 (истина), если k-я строка массива а симметрична, и 0 (ложь) – в противном случае.

  18. Определить количество «особых» элементов массива, считая элемент «особым», если в его строке слева от него находятся элементы, меньшие его, а справа – большие.

  19. Дана матрица, все элементы которой различны. Найти скалярное произведение строки, в которой находится наибольший элемент матрицы, на столбец с наименьшим элементом.

  20. Определить, является ли квадратный массив магическим квадратом, то есть массивом, в котором суммы элементов во всех строках, столбцах и на обеих диагоналях одинаковы.


Достарыңызбен бөлісу:
1   2   3   4   5   6   7




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет