Чтобы приступить к решению задач, предложенных в этой статье, вам необходимо знать что такое двумерные (многомерные) массивы . Задачи расположены от простой к сложной. Так что, если вы новичок в программировании, начинайте с первой, чтобы лучше разобраться с остальными.
1. Объявить двумерный массив, заполнить целыми числами и показать на экран.
2) Объявить двумерный массив и заполнить его построчно с клавиатуры. После заполнения – показать заполненную матрицу на экран и посчитать сумму элементов отдельно в каждом столбце и каждой строке.
3) Заполнить двумерный массив случайными числами от 10 до 100. Посчитать сумму элементов отдельно в каждой строке и определить номер строки, в которой эта сумма максимальна.
Ваши вопросы, которые возникли при решении задач, оставляйте в комментариях к этой статье.
#include
using namespace std;
int main()
{
const int ROW = 3;
const int COL = 3;
setlocale(LC_ALL, “RU”);
int arr[ROW][COL];
cout << "Заполните двумерный массив случайными числами" << endl;
for (int i = 0; i < ROW; i++) {
for (int j = 0; j > arr[i][j];
}
}
int sumROW = 0, sumCOL = 0;
cout << endl;
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
cout << arr[i][j]<< "\t";
}
cout<<endl;
}
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
sumROW = sumROW + arr[i][j];
}
cout << "Сумма элементов в строке : " << i + 1 << " " << sumROW;
sumROW = 0;
cout << endl;
}
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
sumCOL = sumCOL + arr[j][i];
}
cout << "Сумма элементов в столбце : " << i + 1 << " " << sumCOL ;
sumCOL = 0;
cout << endl;
}
}
#include
#include
using namespace std;
int main()
{
srand(time(NULL));
const int ROW = 10;
const int COL = 10;
int sumROW = 0;
int sumROWMax = 0;
int numberROW = 1;
setlocale(LC_ALL, “RU”);
int arr[ROW][COL];
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
arr[i][j] = rand() % 100 + 10;
}
}
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
cout << arr[i][j] << "\t";
}
cout << endl;
}
for (int i = 0; i < ROW; i++)
{
for (int j = 0; j < COL; j++)
{
sumROW = sumROW + arr[i][j];
}
cout << "Сумма элементов в строке : " << i + 1 << " " << sumROW << endl;
sumROW = 0;
}
cout << endl;
for (int i = 0; i < ROW; i++)
{
for (int j = 0; j sumROWMax)
{
sumROWMax = sumROW;
numberROW = i;
}
sumROW = 0;
}
cout << "Максимальная сумма элементов в строке "<< numberROW + 1 << ". сумма строки : " << sumROWMax << endl;
}
А можно еще 3-4 задачи по этой теме? Автору RESPECT за такой обучающий материал, очень доходчиво и просто изложены темы
#include
#define DEBUG
using namespace std;
int main()
{
setlocale(LC_ALL, “ru”);
int ROWS, COLS;
cout <> ROWS;
cout <> COLS;
int** a = new int*[ROWS];
for (int i = 0; i < ROWS; i++)
a[i] = new int[COLS];
for (int i = 0; i < ROWS; i++) // ввод элементов матрицы
for (int j = 0; j < COLS; j++)
a[i][j] = rand() % 101 + 10;
cout<< endl;
#ifdef DEBUG
for (int i = 0; i < ROWS; i++)
{
for (int j = 0; j < COLS; j++)
cout << a[i][j] << " ";
cout << endl;
} //вывод матрицы
#endif
int* sum_in_row = new int[ROWS]; // инициализация массива
for (int i = 0; i < ROWS; i++)
sum_in_row[i] = 0;
for (int i = 0; i < ROWS; i++) // подсчет сумм элементов строк
{
int sum = 0;
for (int j = 0; j < COLS; j++)
sum_in_row[i] += a[i][j];
}
for (int i = 0; i < ROWS; i++)
cout << "сумма строки " << i + 1 << "=" << sum_in_row[i] << endl; // вывод сумм строк
int num_max_sum = 0;
int max_sum = 0;
int h=0;
for (int i = 0; i max_sum ? max_sum = sum_in_row[i], num_max_sum = i:h++;
cout << "номер строки с наибольшей суммой: " << num_max_sum+1;
for (int i = 0; i < ROWS; i++) // очистка памяти
delete [] a[i];
delete [] a;
delete[] sum_in_row;
}
#include
using namespace std;
#include
#include “mainCu.h”
int main()
{
setlocale(LC_ALL, “rus”);
srand(time(NULL));
int row;
cin >> row;
int col;
cin >> col;
int** arr = new int* [row];
int* row_arr_sum = new int[row];
int* col_arr_sum = new int[col];
int row_sum = 0, col_sum = 0;
for (short i = 0; i < row; i++)
row_arr_sum[i] = 0;
for (short i = 0; i < row; i++)
col_arr_sum[i] = 0;
for (short i = 0; i < row; i++) {
arr[i] = new int[row];
for (short j = 0; j < col; j++)
arr[i][j] = rand() % 10;
}
for (short i = 0; i < row; i++) {
for (short j = 0; j < col; j++)
cout <<"|"<< arr[i][j] << "|";
cout << endl;
}cout << endl;
for (short i = 0; i < row; i++) {
for (short j = 0; j < col; j++) {
row_arr_sum[i] += arr[i][j];
col_arr_sum[i] += arr[i][j];
}
}
cout << "сумма по строкам: " << endl;
for (short i = 0; i < row; i++) {
row_sum += row_arr_sum[i];
cout << "строка(" << i+1 << "):"<< row_arr_sum[i]<<endl;
} cout << "сумма по столбцам: " << endl;
for (short i = 0; i < row; i++){
col_sum += row_arr_sum[i];
cout << "столбец(" << i + 1 << "):" << col_arr_sum[i] <<endl;}
cout << endl << col_sum << endl << row_sum << endl;
}
//к сожелению там допустил пару ошибок. тут исправлено
#include
using namespace std;
#include
#include “mainCu.h”
int main()
{
setlocale(LC_ALL, “rus”);
srand(time(NULL));
int row;
cin >> row;
int col;
cin >> col;
int** arr = new int* [row];
int* row_arr_sum = new int[row];
int* col_arr_sum = new int[col];
for (short i = 0; i < row; i++)
row_arr_sum[i] = 0;
for (short i = 0; i < row; i++)
col_arr_sum[i] = 0;
for (short i = 0; i < row; i++) {
arr[i] = new int[row];
for (short j = 0; j < col; j++)
arr[i][j] = rand() % 10;
}
for (short i = 0; i < row; i++) {
for (short j = 0; j < col; j++)
cout <<"|"<< arr[i][j] << "|";
cout << endl;
}cout << endl;
for (short i = 0; i < row; i++) {
for (short j = 0; j < col; j++){
row_arr_sum[i] += arr[i][j];
col_arr_sum[i] += arr[j][i];
}
}
cout << "сумма по строкам: " << endl;
for (short i = 0; i < row; i++) {
cout << "строка(" << i+1 << "):"<< row_arr_sum[i]<<endl;
} cout << "сумма по столбцам: " << endl;
for (short i = 0; i < row; i++){
cout << "столбец(" << i + 1 << "):" << col_arr_sum[i] <<endl;}
int max_count = 0;
int min_count =0;
int max_row_sum = row_arr_sum[0], min_row_sum = row_arr_sum[0];
for (short i= 0; i <row; i++)
{
if (max_row_sum row_arr_sum[i]) {
min_row_sum = row_arr_sum[i];
min_count = i;
}
}
cout << "максимальная сумма в строке №" << max_count + 1 << " = " << max_row_sum << endl
<< "Минимальная сумма в строке №" << min_count + 1 << " = " << min_row_sum << endl;
}
#include
#include
using namespace std;
int main()
{
srand(time(NULL));
const int ROWS = 10;
const int COLS = 10;
int arr[ROWS][COLS]{};
for (int i = 0; i < ROWS; i++)//Заполнение массива arr[][]
{
for (int j = 0; j < COLS; j++)
{
arr[i][j] = rand() % 90 + 10;
}
}
int arr_sum[ROWS]{};//Создаем массив в котором будем хранить сумму //элементов каждой строки массива arr[][]
for (int i = 0; i < ROWS; i++)
{
for (int j = 0; j < COLS; j++)
{
arr_sum[i] = arr_sum[i] + arr[i][j];//Присваиваем в i элемент масива //arr_sum[] сумму всех элементов в i строке массива arr[][] (и так далее )
}
}
int max_index = 0;//переменная в которой будет хранится индекс //максимального элемента массива max_sum[]
for (int i = 1; i < ROWS; i++)
{
if (arr_sum[max_index] < arr_sum[i])
{
max_index = i;
}
}
/*Так как размер массива arr_sum[] равен колличеству строк
* массива arr[][] то индекс максимального элемента массива arr_sum[]
* соответствует индексу строки массива arr[][] с наибольшей суммой элементов
*/
cout << "Index max row – " << max_index;
return 0;
}
Почему можно заменить
columnSum[rowNum] += ourMatrix[columnNum][rowNum];
на
columnSum[columnNum] += ourMatrix[rowNum][columnNum];
и результат будет тем же?
таблица умножение
#include
int main()
{
int i=0, j=0;
short mas2d[10][10] = {};
//заполнение массива
for (i = 0; i < 10; i++) {
for (j = 0; j < 10; j++) {
mas2d[i][j] = i * j;
}
}
//вывод массива на экран
for (i = 0; i <10; i++)
{
std::cout << std::endl ;
{
for (j = 0; j <10; j++)
std::cout << mas2d[i][j] << "\t";
}
}
}