Задачи поиска, замены и суммирования элементов двумерного массива
В программировании двумерные массивы называют также матрицами. В задачах на обработку двумерных массивов следует определить способ просмотра массива (по строкам, по столбцам, вдоль диагоналей и т.д.). При этом, как правило, используют кратные циклы, в которых один изменяющийся параметр соответствует пробегу по индексам строк, другой – колонок. При выборе пути обхода матрицы следует учитывать, что параметр внешнего цикла меняется медленнее, чем параметры вложенных в него циклов.
Пример 4. Найдем максимальный элемент главной диагонали двумерного целочисленного массива размерностью n´n, заданном случайными числами на промежутке [-100; 100).
/*Описание функции поиска максимального элемента главной диагонали*/
int maxim (int str,int slb, int m[max_x][max_y]) {
int i,j, e_max=m[0][0];
for (i=0;i<str;i++)
for (j=0;j<slb;j++)
if ((i==j) && (m[i][j]>e_max))
e_max=m[i][j];
return e_max;
}
Пример 5. Найдите сумму элементов столбца двумерного массива, номер которого задается с клавиатуры.
/*Описание функции суммирования элементов заданного номера столбца матрицы*/
int summa (int str,int slb, int nom, int m[max_x][max_y]){
int i,j, sum=0;
for (i=0;i<str;i++)
for (j=0;j<slb;j++)
if (j==nom-1)
sum+=m[i][j];
return sum;
}
Пример 6. Дан двумерный вещественный массив размерностью n´n, заданный случайными числами на промежутке [-100; 100). Замените все элементы выше главной диагонали на 0.0 и ниже ее на 1.1.
//Описание функции замены
void zamena (int str,int slb, double m[max_x][max_y]) {
int i,j;
for (i=0;i<str;i++)
for (j=0;j<slb;j++) {
if (i>j) m[i][j]=0.0;
if (i<j) m[i][j]=1.1;
}
}
Задания
1.Наберите коды программ из Примеров 1, 2 и 3 . Выполните компиляцию и запуск программ.
2.Объявите двумерный целочисленный массив, в котором 10 строк по 7 элементов. Выполните генерацию массива случайными целыми числами количеством n ´ m (n ≤10, m ≤7) из промежутка [a; b). Выведите массив на экран в виде таблицы. Оформите генерацию и ввод массива с помощью функций.
3.Объявите двумерный вещественный массив, в котором n ´ m элементов. Заполните его числами, полученными по закономерности: Распечатайте его в виде таблицы с точностью до 4 знаков после запятой. Найдите в каждом столбце наибольший элемент. Распечатайте найденные элементы под соответствующим столбцом.
4.Объявите двумерный целочисленный массив, в котором n ´ m элементов. Выполните генерацию массива случайными целыми числами из промежутка [a; b). Распечатайте массив в виде таблицы. Найдите суммы элементов массива по строкам. Распечатайте найденные суммы по образцу:
Сумма элементов 0-й строки равна …
Сумма элементов 1-й строки равна ….
Домашние задания
1.На основе предложенных функций в Примерах 4, 5 и 6 разработайте коды программ. Выполните компиляцию и запуск программ.
2.Объявите двумерный вещественный массив, в котором n ´ m элементов. Заполните его числами, полученными по закономерности: . Распечатайте его в виде таблицы с точностью до 3 знаков после запятой. Найдите в каждом столбце среднее арифметическое элементов. Распечатайте найденные средние арифметические под соответствующим столбцом с той же точностью.
3.Объявите двумерный целочисленный массив, в котором n ´ m элементов. Выполните генерацию массива случайными целыми числами из промежутка [a; b). Замените в массиве максимальные элементы каждой строки произведением их цифр. Распечатайте массив в виде таблицы дважды: до и после замены.
4.Объявите двумерный целочисленный массив, в котором n ´ n элементов. Выполните транспонирование полученной квадратной матрицы. Распечатайте массив в виде таблицы дважды: до и после транспонирования.
Дата добавления: 2015-02-16; просмотров: 1187;