Заполнить двумерный массив случайными числами от 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!