Заполнить двумерный массив случайными числами от 10 до 100. Посчитать сумму элементов отдельно в каждой строке и определить номер строки, в которой эта сумма максимальна.
Задачи на двумерные массивы
Объявить двумерный массив, заполнить целыми числами и показать на экран.
Задача 1: как заполнить двумерный массив
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #include <iostream> using namespace std; int main() { setlocale(LC_ALL, "rus"); const int RowCount = 3; const int ColumnCount = 4; int ourMatrix[RowCount][ColumnCount] = {}; for (int rowNum = 0; rowNum < RowCount; rowNum++) { for (int columnNum = 0; columnNum < ColumnCount; columnNum++) { ourMatrix[rowNum][columnNum] = rowNum + columnNum; cout << ourMatrix[rowNum][columnNum] << " "; } cout << endl; } return 0; } |
Как видите, заполняется двумерный массив достаточно просто. Для этого используйте вложенные циклы. Счетчик внешнего цикла перебирает номера строк массива, а счетчик вложенного проходит по элементам этой строки чисел – по столбцам.
Результат:
Кстати немного изменив задачу, можно нарисовать таблицу умножения в консольном окне.
Задача 1: как заполнить двумерный массив 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #include <iostream> #include <iomanip> // для функции setw() using namespace std; int main() { setlocale(LC_ALL, "rus"); const int RowCount = 9; const int ColumnCount = 9; int ourMatrix[RowCount][ColumnCount] = {}; for (int rowNum = 1; rowNum <= RowCount; rowNum++) { for (int columnNum = 1; columnNum <= ColumnCount; columnNum++) { ourMatrix[rowNum - 1][columnNum - 1] = rowNum * columnNum; cout << setw(4) << ourMatrix[rowNum - 1][columnNum - 1]; } cout << endl; } return 0; } |
Функция setw() используется в коде для форматирования вывода на экран данных – строка 19. Она устанавливает ширину поля для отображения элемента расположенного после неё. Например без применения этой функции ( cout << ourMatrix[rowNum - 1][columnNum -1];) вывод на экран двумерного массива мог бы быть таким:
|
|
Но нам бы хотелось всё таки увидеть матрицу в виде таблицы – с одинаковыми отступами между столбцами. Применив setw() в потоке вывода и передав в неё число 4, мы указали, что для каждого следующего элемента надо установить ширину поля в четыре символа: cout << setw(4) << ourMatrix[rowNum - 1][columnNum - 1];
Результат:
Объявить двумерный массив и заполнить его построчно с клавиатуры. После заполнения – показать заполненную матрицу на экран и посчитать сумму элементов отдельно в каждом столбце и каждой строке.
Задача 2: двумерные массивы в с++
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | #include <iostream> #include <iomanip> using namespace std; int main() { setlocale(LC_ALL, "rus"); const int MatrixSize = 3; int ourMatrix[MatrixSize][MatrixSize] = {}; int rowSum[MatrixSize] = {}; // для записи суммы по строкам int columnSum[MatrixSize] = {}; // ... по столбцам cout << "Заполните матрицу " << MatrixSize << 'х' << MatrixSize << " числами построчно.\n"; for (int rowNum = 0; rowNum < MatrixSize; rowNum++) { for (int columnNum = 0; columnNum < MatrixSize; columnNum++) { cout << rowNum + 1 << "-я строка "; cout << columnNum + 1 << "-й столбец: "; cin >> ourMatrix[rowNum][columnNum]; } cout << endl; } // вывод на экран + подсчет суммы for (int rowNum = 0; rowNum < MatrixSize; rowNum++) { cout << " | "; for (int columnNum = 0; columnNum < MatrixSize; columnNum++) { cout << setw(4) << ourMatrix[rowNum][columnNum] << " "; rowSum[rowNum] += ourMatrix[rowNum][columnNum]; columnSum[rowNum] += ourMatrix[columnNum][rowNum]; } cout << "|" << endl; } cout << "\nСумма по строкам!\n"; for (int i = 0; i < MatrixSize; i++) { cout << i + 1 << "-я строка: " << rowSum[i] << endl; } cout << "\nСумма по столбцам!\n"; for (int i = 0; i < MatrixSize; i++) { cout << i + 1 << "-й столбец: " << columnSum[i] << endl; } return 0; } |
Результат работы программы:
|
|
Заполнить двумерный массив случайными числами от 10 до 100. Посчитать сумму элементов отдельно в каждой строке и определить номер строки, в которой эта сумма максимальна.
Задача 3: двумерные массивы в с++
|
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | #include <iostream> #include <ctime> #include <cstdlib> #include <iomanip> using namespace std; int main() { setlocale(LC_ALL, "rus"); const int MatrixSize = 7; int ourMatrix[MatrixSize][MatrixSize] = {}; int rowSum[MatrixSize] = {}; // для записи сумм в строках int numMaxRow = 0; // номер строки с максимальной суммой srand(time(NULL)); for (int rowNum = 0; rowNum < MatrixSize; rowNum++) { cout << " | "; for (int columnNum = 0; columnNum < MatrixSize; columnNum++) { ourMatrix[rowNum][columnNum] = 10 + rand() % 91; cout << setw(4) << ourMatrix[rowNum][columnNum] << " "; } cout << "|" << endl; } // подсчет суммы отдельно в каждой строке for (int rowNum = 0; rowNum < MatrixSize; rowNum++) { for (int columnNum = 0; columnNum < MatrixSize; columnNum++) { rowSum[rowNum] += ourMatrix[rowNum][columnNum]; } } cout << "\nСумма по строкам!\n"; for (int i = 0; i < MatrixSize; i++) { cout << i + 1 << "-я строка: " << rowSum[i] << endl; } for (int i = 1; i < MatrixSize; i++) { if (rowSum[i] > rowSum[numMaxRow]) { numMaxRow = i; } } cout << "Строка, сумма элементов которой максимальна: " << numMaxRow + 1; cout << endl << endl; return 0; } |
Дата добавления: 2021-04-15; просмотров: 352; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!