Двумерные массивы
Пример 1. Дан двумерный массив n × n. Обменять значениями k -й и последний строки.
#include <stdio.h>
void main()
{ int i,j,k,n; float a[101][101],r;
printf(”n k=”); scanf(”%i%i”,&n,&k);
printf("Введите значения массива %i*%i:\n”,n,n);
for (i=1;i<=n;i++)
for (i=1;i<=n;i++) printf(”%6.2f”,a[i][j]);
for (j=1;j<=n;j++)
{
r=a[k][j]; a[k][j]=a[n][j]; a[n][j]=r;
}
for (i=1;i<=n;i++)
{
for (j=1; j<=n; j++) printf(“%8.2i”,a[i][j]);
printf(”\n”);
}
}
Пример 2. Построить квадратную матрицу порядка n:
… | |||||
… | |||||
… | |||||
. | . | . | … | . | . |
n | n | … | n | n | |
#include <stdio.h>
#include <conio.h>
void main()
{ int i,j,n; int a[21][211];
printf(”n=”);scanf(”%i”,&n);
for (i=1;i<=n;i++)
for (j=1;j<=n;j++) a[i][j]=i;
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++) if (i>=j) printf(”%3i”,a[i][j]);
else printf(”%3i”,0);
printf(”\n”);
}
}
Задания для решения на компьютере
A. Даны целые числа a1, a2,..., an. Получить целочисленную матрицу bij, для которой bij = ai2 - aj.
B. Построить квадратную матрицу порядка n:
… | n-1 | n | |||
… | n-2 | n-1 | |||
… | n-3 | n-2 | |||
. | . | . | … | . | . |
… | |||||
C. Дана символьная матрица порядка n. Найдите номер первой по порядку строки, содержащей наибольшее число цифр. Гарантируется, что в матрице есть цифра.
D. Упорядочить по возрастанию элементы каждой строки целочисленной матрицы размером n × m.
E. Задана квадратная матрица порядка n. Получить транспонированную матрицу, т.е. матрицу, где столбцы и строки меняются местами.
F. Определить, является ли заданная целая квадратная матрица n -го порядка ортонормированной, т.е. такой, в которой скалярное произведение каждой пары различных строк равно 0, а скалярное произведение каждой строки на себя равно 1. Ответ “YES” или “NO”.
G. Найти решение " треугольной системы " линейных уравнений
a11x1 + | a12x2 + | a13x3 + | … + | a1nxn= | b1 |
a22x2 + | a23x3 + | … + | a2nxn= | b2 | |
a34x4 + | … + | a3nxn= | b3 | ||
… | |||||
annxn= | bn |
Задания для самостоятельной работы
1.1. Дана матрица B [ N, M ]. Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их с первым и последним элементом строки соответственно.
1.2. Дана действительная квадратная матрица порядка N (N – нечетное), все элементы которой различны. Найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять его местами с элементом, стоящим на пересечении этих диагоналей.
2.1. Получить квадратную матрицу порядка n:
0 0 0... 0 1
........
0 0 1... 1 1
0 1 1... 1 1
1 1 1... 1 1
2.2. Для заданной квадратной матрицы сформировать одномерный массив из ее диагональных элементов. Найти след матрицы, суммируя элементы одномерного массива. Преобразовать исходную матрицу по правилу: четные строки разделить на полученное значение, нечетные оставить без изменения.
3.1. Получить квадратную матрицу порядка n:
1 0 0... 0 1
0 1 0... 1 0
........
0 1 0... 1 0
1 0 0... 0 1
3.2. Квадратная матрица, симметричная относительно главной диагонали, задана верхним треугольником в виде одномерного массива. Восстановить исходную матрицу и напечатать по строкам.
4.1. Дано действительное число x и натуральное число n. Получить действительную квадратную матрицу порядка n вида:
x x x x x
x 0 0 0 x
x 0 0 0 x
x 0 0 0 x
x x x x x
4.2. Дана символьная матрица порядка 10. Найдите номер последнего по порядку столбца, в котором содержится наибольшее количество различных символов.
5.1. Получить квадратную матрицу порядка n:
0 0 0 0... 1
..........
0 0 1 2... n-2
0 1 2 3... n-1
1 2 3 4... n
5.2. Дана вещественная матрица порядка n. Будем называть соседями элемента с индексами i, j такие элементы, соответствующие индексы которых отличаются от i, j не более чем на единицу. Постройте матрицу B, состоящую из нулей и единиц, элемент которой bij равен единице, когда среди соседей aij есть не менее двух элементов, совпадающих с aij.
6.1. В массиве $A[n,n]$ содержится ровно $n$ единиц, остальные нули.
Проверить, есть ли в массиве хотя бы одна строка или один столбец, не содержащие единицы.
6.2. Даны две матрицы $A[n,n]$ и $B[n,n]$. Проверить, можно ли получить вторую из первой применением операции
транспонирования относительно главной или побочной диагоналей.\\
7.1. Дана символьная квадратная матрица порядка 5. Замените буквой $x$ все ее элементы, расположенные
выше главной диагонали.
7.2. Матрицу $A[n,m]$ заполнить следующим образом. Для заданных $k$ и $l$ элементу $a_{kl}$ присвоить значение 1;
элементам, окаймляющим его -- значение 2; элементам следующего окаймления -- значение 3 и так далее до
заполнения всей матрицы.\\
8.1. Дана символьная матрица порядка $10$. Найдите номер первой по пордку столбца, содержащей наибольшее количество
пробелов на пересечении с четными строками.
8.2. Матрица $A[n,m]$ состоит из нулей и единиц. Какова в ней длина самой длинной цепочки подряд
стоящих нулевых элементов по горизонтали, вертикали и диагонали(главной и побочной).\\
9.1. Дана действительная матрица размера $n \times m$. Определить числа $b_1,b_2,...,b_m$, равные
соответственно суммам элементов строк.
9.2. «Тестирование коллектива». Пусть целочисленная матрица размером $n \times m$ содержит информацию об учениках
некоторого класса из $n$ человек. В первом столбце проставлена масса (кг), во втором - рост (см), в третьем -
успеваемость (средний балл) и т.д. (используйте свои дополнительные показатели). Ученик называется
среднестатистическим по $k$-му параметру (уникальным по $k$-му параметру), если на нем достигается минимум
(максимум) модуля разности среднего арифметического чисел из $k$-го столбца и значения $k$-го параметра этого
ученика. Ученик называется самым уникальным (самым средним), если он уникален (является среднестатистическим)
по самому большому количеству параметров. Поданной матрице определить самых уникальных учеников и самых
средних.\\
10.1. Дана действительная матрица размера $n \times m$. Получите $b_1,b_2,...b_n$, где $b_i$ -- это значение
первого по порядку отрицательного элемента $i$-й строки (если таких элементов нет, то $b_i=0$).
10.2. Дана вещественная матрица размером $7 \times 7$, все элементы которой различны. Найти скалярное произведение
строки, в котрой находится наибольший элемент матрицы, на столбец с наименьшим элементом.\\
11.1. Дана действительная матрица размера $n \times m$. Определить числа $b_1,b_2,...,b_m$, равные
соответственно произведениям элементов строк.
11.2. Дана квадратная целочисленная матрица порядка $n$. Сформировать результирующий одномерный массив,
элементами которого являются строчные суммы тех строк, которые начинаются с $k$ идущих подряд положительных
чисел.\\
12.1. Дана действительная матрица размера $n \times m$. Определить числа $b_1,b_2,...,b_m$, равные
соответственно наименьшим значениям элементов строк.
12.2. Матрица $A[N, M]$ ($M$ кратно $4$) разделена по вертикали на две половины. Определить сумму элементов каждого
столбца левой половины и сумму элементов каждого четного столбца правой половины матрицы $A$.\\
13.1. Дана действительная матрица размера $n \times m$. Определить числа $b_1,b_2,...,b_m$, равные
соответственно значениям средних арифметических элементов строк.
13.2. Определить номера строк матрицы $R[M, N]$, хотя бы один элемент которых равен $c$, и элементы этих строк
умножить на $d$.\\
14.1. Дана действительная матрица размера $n \times m$. Определить числа $b_1,b_2,...,b_m$, равные
соответственно суммам наибольших и наименьших значений элементов строк.
14.2. Расположить столбцы матрицы $B[M, N]$ в порядке возрастания элементов $k$-ой строки ($1 \le k \le M$).\\
15.1. Дана действительная квадратная матрица порядка $n$. Заменить нулями все ее элементы, расположенные
на главной диагонали и выше нее.
15.2. Определить наименьший элемент каждой четной строки матрицы $A[M, N]$.\\
16.1. Дана действительная квадратная матрица порядка $n$. Заменить нулями все ее элементы, расположенные
на побочной диагонали и выше нее.
16.2. Определить номера тех строк целочисленной матрицы $A[N,K]$, которые совпадают с массивом $D[K]$. Если таких
строк нет, выдать соответствующее сообщение.\\
17.1. Вычислить сумму и число положительных элементов матрицы $A[N, N]$, находящихся над главной диагональю.
17.2. Пусть дана действительная матрица размером $n \times m$. Требуется преобразовать матрицу: поэлементно вычесть
последнюю строку из всех строк, кроме последней.\\
18.1. В двумерном массиве переставить строки следующим образом: первую с последней, вторую -- с предпоследней
и так далее.
18.2. Дана действительная квадратная матрица порядка $n$. Преобразовать матрицу по правилу: строку с номером $n$
сделать столбцом с номером $n$, а столбец с номером $n$ — строкой с номером $n$.\\
19.1. Задана квадратная матрица. Переставить строку с максимальным элементом на главной диагонали со строкой с
заданным номером $m$.
19.2. В данной действительной квадратной матрице порядка $n$ найти наибольший по модулю элемент. Получить
квадратную матрицу порядка $n-1$ путем отбрасывания из исходной матрицы строки и столбца, на пересечении
которых расположен элемент с найденным значением.\\
20.1. Дана целая квадратная матрица $n$-го порядка. Определить, является ли она магическим квадратом, т.е. такой, в
которой суммы элементов во всех строках и столбцах одинаковы.
20.2. В данной действительной квадратной матрице порядка $n$ найти сумму элементов строки, в которой расположен
элемент с наименьшим значением. Предполагается, что такой элемент единственный.\\
21.1. Элемент матрицы назовем седловой точкой, если он является наименьшим в своей строке и одновременно
наибольшим в своем столбце или, наоборот, является наибольшим в своей строке и наименьшим в своем столбце. Для
заданной целой матрицы размером $n \times m$ напечатать индексы всех ее седловых точек.
21.2. Дана прямоугольная матрица размером $n \times m$. Переставляяее строки и столбцы, добейтесь того, чтобы наибольший
элемент (один из них) оказался в верхнем левом углу.\\
22.1. Дана целочисленная квадратная матрица порядка $n$. Найдите номера строк все элементы которых четны.
22.2. Дана прямоугольная матрица размером $n \times m$. Найти строку с наибольшей и наименьшей суммой элементов.
Вывести на печать найденные строки и суммы их элементов.
23.1. Дана вещественная матрица размером $n \times m$. Переставляя ее строки и столбцы, добиться того, чтобы наибольший
элемент (или один из них) оказался в верхнем левом углу.
23.2. Найти наибольший и наименьший элементы прямоугольной матрицы и поменять их местами.\\
24.1. Определить, является ли заданная целая квадратная матрица $n$-го порядка симметричной (относительно главной
диагонали).
24.2. Дана действительная квадратная матрица порядка $2n$. Получить новую
матрицу, переставляя ее блоки размера $n \times n$ крест-накрест.\\
25.1. Дана целочисленная квадратная матрица. Найти в каждой строке наибольший элемент и поменять его местами с
элементом главной диагонали.
25.2. Для целочисленной квадратной матрицы найти число элементов, кратных $k$, и наибольший из полученных
результатов.\\
26.1. Задана матрица размером $n \times m$. Найти максимальный по модулю элемент матрицы. Переставить строки и столбцы
матрицы таким образом, чтобы максимальный по модулю элемент был расположен на пересечении $k$-й строки и $k$-го
столбца.
26.2. Дана вещественная матрица порядка $n$. Будем называть соседями элемента с индексами $i$, $j$ такие элементы,
соответствующие индексы которых отличаются от $i$, $j$ не более чем на единицу. Постройте матрицу $B$, состоящую
из нулей и единиц, элемент которой $b_{ij}$ равен единице, когда все соседи $a_{ij}$ меньше самого элемента.\\
27.1. Дана квадратная матрица $A[N, N]$. Записать на место отрицательных элементов матрицы нули, а на место
положительных — единицы. Вывести на печать нижнюю треугольную матрицу в общепринятом виде.
27.2. Задана матрица порядка $n$ и число $k$. Разделить элементы $k$-й строки на диагональный элемент, расположенный в
этой строке.\\
28.1. Получить квадратную матрицу порядка $n$, заполненную следующим образом:
\begin{verbatim}
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
21 22 23 24 25
\end{verbatim}
28.2. Дана действительная матрица размером $n \times m$, все элементы которой различны. В каждой строке выбирается
элемент с наименьшим значением, затем среди этих чисел выбирается наибольшее. Указать индексы элемента с
найденным значением.\\
29.1. Задана квадратная матрица. Переставить строку с максимальным
элементом на главной диагонали со строкой с заданным номером $m$.
29.2. В данной действительной квадратной матрице порядка $n$ найти
наибольший по модулю элемент. Получить квадратную матрицу порядка
$n-1$ путем отбрасывания из исходной матрицы строки и столбца, на
пересечении
которых расположен элемент с найденным значением.\\
30.1. Дана целая квадратная матрица $n$-го порядка. Определить,
является ли она магическим квадратом, т.е. такой, в которой суммы
элементов во всех строках и столбцах одинаковы.
30.2. В данной действительной квадратной матрице порядка $n$ найти
сумму элементов строки, в которой расположен
элемент с наименьшим значением. Предполагается, что такой элемент единственный.\\
\end{sloppypar}
\end{document}