Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по ОИиП под ред Бусько.DOC
Скачиваний:
18
Добавлен:
11.05.2015
Размер:
732.67 Кб
Скачать

Многомерные массивы

В языке С кроме одномерных массивов возможна работа с многомерными массивами. Объявление многомерного массива:

<тип><имя>[<размер 1 >][<размер 2 >]…[<размер N>]={{список начальных значений},{список начальных значений},…};

Наиболее быстро изменяется последний индекс элементов массива, поскольку многомерные массивы в языке С размещаются в памяти компьютера в последовательности столбцов.

Например, элементы двухмерного массива b[2][1] размещаются в памяти компьютера в следующем порядке:

b[0][0], b[0][1], b[1][0], b[1][1], b[2][0], b[2][1].

Следующий пример иллюстрирует определение массива целого типа, состоящего из трех строк и четырех столбцов, с одновременным присвоением его элементам (инициализацией) начальных значений:

int a[3][4] = {{0,1,2,0},{9,-2,4,1,},{-7,1,6,8}};

Если в какой-то группе {…} отсутствует значение, то соответствующему элементу присваивается 0. Предыдущий оператор будет эквивалентен следующему определению:

int a[3][4] = {{1,2},{9,-2,4,1,},{-7,1,6,8}};

Отметим, что имя двухмерного массива – это указатель на массив указателей (переменная типа указатель на указатель: int **a), поэтому выражение b[r][c] эквивалентно выражению *(*(b+r)+c).

Варианты индивидуальных заданий

  1. Ввести целое число N. Выделить из этого числа цифры, кратные 3, и записать их в одномерный массив.

  1. В заданной двумерной матрице выделить 3 блока по 2 строки и 2 столбца (блоки расположены на главной диагонали матрицы). Упорядочить блоки по величине их диагоналей (по убыванию значений их диагоналей).

  1. Для заданного целого числа N определить цифру а, наиболее часто встречающуюся в числе. Сформировать одномерный массив из 5 элементов: a, а2, а3, а4, а5.

  1. Элементы заданного массива X циклически сдвинуть на K позиций вправо (влево).

  1. Дано число N целого типа. Определить, симметрично ли оно, т.е. одинаковые цифры – и слева и справа: 12321. Записать 3 последние цифры в одномерный массив.

  1. Переменной t присвоить значение 1 или 0 в зависимости от того, есть или нет среди элементов массива X хотя бы одно число Фибоначчи. Числа Фибоначчи (fn) определяются формулой

f0=f1=1; fn=fn-1+fn-2, при n=2,3,....

Например, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,…..

  1. Упорядочить элементы массива x по неубыванию (т.е. переставить его элементы так, чтобы для всех K выполнялось xk≤xk+1), используя алгоритм упорядочения (сортировки) вставками

Пусть первые K элементов массива уже упорядочены по неубыванию. Берется (K+1)-й элемент и размещается среди первых K элементов так, чтобы упорядоченными оказались уже K+1 первых элементов. Этот метод применяется при изменении K от 1 до n-1.

8. Даны координаты n точек на плоскости: x1,y1, x2,y2,…. xn,yn (n = 20). Найти номера двух точек, расстояние между которыми наибольшее (считать, что такая пара единственная).

  1. Заданы два массива по 30 целых чисел в каждом. Найти наименьшее среди чисел первого массива, которое не входит во второй массив (считая, что хотя бы одно такое число есть).

  1. Дан массив из 20 целых чисел. Определить количество инверсии в этом массиве (т.е. таких пар элементов, в которых большее число находится слева от меньшего: xi > xj при

i < j).

  1. Определить количество шестизначных чисел, в которых сумма первых 3 цифр равна сумме 3 последних цифр, например 105123.

  1. Даны натуральное N и квадратная вещественная матрица А. Вычислить K-ю степень этой матрицы: А1=А, А2=А·А, А32·А, А43·А, А54·А и т.д.

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

  1. Дана вещественная матрица размером 3 x 4. Упорядочить ее строки по неубыванию наибольших элементов в строках матрицы.

  1. Задан массив Х размером 5 x 5, состоящий из 0 и 1. Повернуть элементы массива на 900 по часовой стрелке.

  1. Элемент матрицы назовем седловой точкой, если он наименьший в своей строке и наибольший (одновременно) в своем столбце (или наоборот, наибольший в своей строке и наименьший в своем столбце). Для заданной целой матрицы размером 10 x 12 напечатать индексы всех ее седловых точек.

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

  1. Определить, является ли заданная целая квадратная матрица размером 4 x 4 ортонормированной, т.е. такой, в которой скалярное произведение каждой пары различных строк равно 0, а скалярное произведение каждой строки на себя равно 1.

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

  1. Дана матрица размером 6 x 6. Найти сумму наименьших элементов ее нечетных строк и наибольших элементов ее четных строк.

  1. Дана действительная квадратная матрица порядка N. Рассмотрим те элементы, которые расположены в строках, начинающихся с отрицательного элемента. Найти сумму тех из них, которые расположены соответственно ниже, выше и на главной диагонали матрицы.

  1. Дана вещественная квадратная матрица порядка 5. Получить целочисленную квадратную матрицу того же порядка, в которой элемент равен 1, если соответствующий ему элемент исходной матрицы больше элемента, расположенного на главной диагонали, и равен 0 в противном случае.

  1. Получить целочисленную квадратную матрицу порядка 7, элементами которой являются числа 1, 2, ….., 49, расположенные в ней по спирали:

1 2 ….

24. Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя ее блоки размера n x n:

а) б)

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

26. Заданы два массива А(5) и В(5). Подсчитать в них количество элементов, меньших значения t, и первым на печать вывести массив, имеющий наибольшее их количество.

27. Задан массив А(10). Получить из него массив В, состоящий из элементов массива А, которые больше 0.

28. Задан массив А(10). Получить из него массив В, состоящий из элементов массива А, которые меньше 0.

29. Задан массив А(10). Получить из него массив В, состоящий из элементов массива А, которые кратны двум.

30. Задан массив А(10). Получить из него массив В, состоящий из элементов массива А, которые больше значения T.