![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Лабораторная работа № 7
Многомерные массивы задаются указанием каждого измерения в квадратных скобках, например
int a[6][8];
задает описание двумерного массива из 6 строк и 8 столбцов. В памяти такой массив располагается в последовательных ячейках построчно. Для доступа к элементу многомерного массива указываются все его индексы, например a[2][4] – элемент массива, расположенный во 2 строке, 4 столбце (не следует забывать, что элементы массива нумеруются с 0).
Примеры:
#include <iostream>
using namespace std;
int main()
{
//Задаем максимальное допустимое количество строк и столбцов
const int MAX_ROW_COUNT = 100;
const int MAX_COL_COUNT = 100;
//Определяем массив a
int a[MAX_ROW_COUNT][MAX_COL_COUNT];
//Определяем переменные для хранения количества строк и столбцов
// (начальных строк и начальных столбцов, которые реально используются
// для хранения элементов в массиве a)
int nRows, nCols;
//Вводим размеры матрицы (количество строк и столбцов)
cout << "Enter matrix sizes" << endl;
cout << " rows count: ";
cin >> nRows;
cout << " cols count: ";
cin >> nCols;
//Вводим сами элементы матрицы
cout << "Enter matrix: " << endl;
for (int i = 0; i < nRows; i++)
{
for (int j = 0; j < nCols; j++)
cin >> a[i][j];
}
//Определяем переменные, необходимые для вычислений
//Текущий индекс строки, содержащей максимальное количество нулей
int max0RowIndex = 0;
//Количество нулей в max0RowIndex-й строке матрицы
int max0Count = 0;
//Внешний цикл перебирает все индексы строк матрицы
for (int i = 0; i < nRows; i++)
{
//Данная переменная используется для подсчета числа нулей
// в очередной i-й строке
int cur0Count = 0;
//Пробегаемся по всем элементам i-й строки, для этого
//j принимает во вложенном цикле все возможные индексы столбцов
for (int j = 0; j < nCols; j++)
//Если очередной элемент равен 0, то
if (a[i][j] == 0)
cur0Count++; //увеличиваем счетчик количества таких элементов на 1
//Если количество нулевых элементов i-й строки превышает
//текущеее максимальное количество, то
if (cur0Count > max0Count)
{
//сохраняем в качестве текущего максимального количества
//число нулей в i-й строке
max0Count = cur0Count;
//сохраняем i в качестве текущего индекса строки, содержашей
//максимальное количество нулей
max0RowIndex = i;
}
}
//Выводим на экран какая строка содержит максимальное количество нулей.
cout << "Row " << max0RowIndex << " contains " << max0Count << " zero(es)." << endl;
return 0;
}
Задание 1. Дан двумерный массив размера n х m целых чисел. Размеры массива и сами элементы вводятся с клавиатуры. Определить по вариантам:
Задание 2. Решить задачу по вариантам:
1) Дана действительная матрица размера n x m, в которой не все элементы равны нулю. Получить новую матрицу путем деления всех элементов данной матрицы на ее наибольший по модулю элемент.
2) Дана действительная матрица размера n x m. Получить новую матрицу путем вычитания из каждого элемента данной матрицы ее наименьшего элемента.
3) В данной действительной квадратной матрице порядка n найти сумму элементов строки, в которой расположен элемент с наименьшим значением. Предполагается, что такой элемент единственный.
4) Дана действительная матрица размера n x m. Получить новую матрицу путем прибавления к каждому элементу данной матрицы ее наибольшего элемента.
5) В данной действительной квадратной матрице порядка n найти произведение элементов столбца, в котором расположен элемент с наибольшим значением. Предполагается, что такой элемент единственный.
6) В данной действительной квадратной матрице порядка n найти произведение элементов строки, в котором расположен элемент с наименьшим значением. Предполагается, что такой элемент единственный.
7) В данной действительной матрице размера n x m поменять местами строку, содержащую элемент с наибольшим значением, со строкой, содержащей элемент с наименьшим значением. Предполагается, что эти элементы единственны.
8) Характеристикой столбца матрицы назовем произведение элементов с четными номерами строк. Определить номер столбца с наибольшей характеристикой.
9) Характеристикой строки целочисленной матрицы назовем сумму ее элементов c четными номерами столбцов. Определить номер строки с наименьшей характеристикой.
10) В данной действительной матрице размера n x m поменять местами столбец, содержащий элемент с наибольшим значением, со столбцом, содержащим элемент с наименьшим значением. Предполагается, что эти элементы единственны.
11) В данной действительной матрице размера n x2 m поменять местами все четные и нечетные столбцы: 0-й столбец с 1-ым столбцом, 2-й с 3-им и т.п.
12) В данной действительной матрице размера n x m поменять местами порядок столбцов на обратный, т.е. переставить местами 0-й и m-1-й столбец, 1-й и m-2-й столбец, 2-й и m-3-й и т.п.
13) Дана действительная матрица A размера n x m. Найти все седловые элементы матрицы. Элемент матрицы aij называется седловым, если он является минимальным в i -й строке матрицы и максимальным в j -м столбце матрицы.
Дата публикования: 2015-07-22; Прочитано: 525 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!