Чтобы приступить к решению задач, предложенных в этой статье, вам необхідно знати что такое двумерные (многомерные) массивы . Задачи расположены от простой к сложной. Так что, если вы новичок в программировании, начинайте с первой, чтобы лучше разобраться с остальными.
1. Объявить двумерный массив, заповнити цілими числами і показати на екран.
2) Объявить двумерный массив и заполнить его построчно с клавиатуры. После заполнения – показать заполненную матрицу на экран и посчитать сумму элементов отдельно в каждом столбце и каждой строке.
3) Заповнити двовимірний масив випадковими числами від 10 до 100. Порахувати суму елементів окремо в кожному рядку і визначити номер рядка, в якій ця сума максимальна.
Ваші запитання, которые возникли при решении задач, залишайте в коментарях до цієї статті.





У метанні молота змагається n спортcменов. Кожен з них зробив m кидків. Переможцем змагань оголошується той спортсмен, у якого максимальний найкращий результат за всіма кидкам. Таким образом, програма повинна знайти значення максимального елемента в даному масиві, а також його індекси (тобто номер спортсмена і номер спроби).
Вхідні дані
Програма отримує на вхід два числа n і m, є числом рядків і стовпців в масиві. Далі у вхідному потоці йде n рядків по m чисел, є елементами масиву.
Вихідні дані
Програма виводить значення максимального елемента, потім номер рядка і номер стовпця, в якому він зустрічається. Якщо в масиві кілька максимальних елементів, то потрібно вивести мінімальний номер рядка, в якій зустрічається такий елемент, а якщо в цьому рядку таких елементів декілька, то потрібно вивести мінімальний номер стовпця. Не забудьте, що всі рядки і стовпці нумеруються з 0.
приклади
вхідні дані
3 3
3 1 2
1 3 4
3 3 3
вихідні дані
4
1 2
І на що ви розраховуєте?
Що хтось стане вирішувати за вас ваші домашні завдання поки ви будете широко гуляти?
Так за таке задоволення гроші платять!
#include “stdafx.h”
#include
#include
#include
#include // setw(відступ)
using namespace std;
int main() {
setlocale(0, “”);
srand(time(NULL));
Const = INT розмір рядка 3;
Const INT COLSIZE = 3;
int arr[розмір рядка][COLSIZE] = {};
// заповнення масиву з клавіатури
/*
for (int rowNum = 0; rowNum < розмір рядка; rowNum ) {
for (INT colNum = 0; монета < COLSIZE; монета ++) {
cout << "Пожалуйста, введіть вихідні значення масиву: ";
cout << rowNum + 1 << "-я строка ";
cout << монета + 1 <> arr[rowNum][монета];
}
}
*/
// Заповнюємо масив випадковими числами
for (int rowNum = 0; rowNum < розмір рядка; rowNum ) {
cout << "Строка " << rowNum + 1 << ": ";
for (INT colNum = 0; монета < COLSIZE; монета ++) {
arr[rowNum][монета] = 1 + rand() % 9;
cout << setw(2) << arr[rowNum][монета];
}
cout << endl;
}
// Знаходимо максимальне число, а якщо їх декілька то знаходимо найпершу рядок і стовпець, де воно зустрічається
ІНТ рядок[розмір рядка]{};
INT кол[COLSIZE]{};
INT Темп = 0;
INT TEMP1 = 0;
for (INT R = 0; R < розмір рядка; г ++) {
for (INT з = 0; c < COLSIZE; C ++) {
if (сідло[0] < arr[c][R]) {
сідло[0] = arr[c][R];
Темп = г;
TEMP1 = з;
}
ще з;
}
}
cout << "Максимальное: " << сідло[0] << " COL: " << TEMP1 + 1 << " ROW: " << температура + 1 << endl;
system("pause");
return 0;
};
#include
#include
#include
#include
#include
int main ()
{
setlocale(LC_ALL, “rus”);
srand(time(NULL));
Int N, M;
Printf (“Введіть кількість спортсменів: “);
зсапЕ (“%d”, &N);
Printf (“Введіть кількість спроб: “);
зсапЕ (“%d”, &M);
INT ** A = новий INT *[N];
for (int count = 0; count < N; count )
A[count] = new int [N];
INT Nmax = 0, IMAX, Jmax;
int i, j;
Printf ("\nТаблица с результатами: \n");
for (i = 0; i < N; i )
{
Printf ("Спортсмен №%d: ", + 1);
for (J = 0; j < M; j )
{
A[i][j] = rand()%25 + 1;
Printf ("%3d ", A[i][j]);
if(Nmax ==[i][j])
{
if(i < IMAX && j < Jmax)
Nmax = А[i][j];
else
Nmax != A[i][j];
}
if(Nmax < A[i][j])
{
Nmax = А[i][j];
Imax = я;
JMax = J;
}
}
Printf ("\n");
}
Printf ("\nЛучший результат – %d у спорстмена №% d в спробі №% d!", Nmax, IMAX + 1, Jmax + 1);
for (int count = 0; count < N; count )
delete [] A[count];
return 0;
}
int main()
{
setlocale(LC_ALL, “rus”);
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
srand(time(NULL));
сопзЬ Int N = 5, м = 7;
ІНТ М.М.[n][м]{}, макс = 0, г,s,R,S;
for (int i = 0; i < n; i )
{
for (int j = 0; j < м; j )
{
М.М.[i][j] = 15 + rand() % 55;
cout << М.М.[i][j] << "|";
}
cout << endl;
}
for (int i = 0; i < n; i )
{
for (int j = 0; J макс)
{
макс = ММ[i][j];
г = я;
s = J;
}
if (макс == ММ[i][j] && i != г && j != s)
{
cout << "Opapa! У нас 2 Pobeditelya!\n";
R = я;
S = J;
cout << "Pobedu delyat uchastnik #" << R + 1 << " я uchastnik #" << R + 1 << " S rezultatom " << max << " м!\n Pozdravlyaem!";
return 0;
}
}
}
cout << "Pobedil uchastnik #" << г + 1 << " s " << з + 1 << " poputki, S rezultatom " << max << " м!\n Pozdravlyaem!";
int ourMatrix[MatrixSize][MatrixSize] = {}
навіщо тут “{}”?
Поясніть будь ласка!!! чому сума в шпальтах виводиться не правильно??
#include
#include
using namespace std;
int main()
{
setlocale(LC_ALL, “rus”);
srand(time(NULL));
const int RowCount = 10;
int array[RowCount][RowCount] = {};
ІНТ SumRow[RowCount] = {}, SumColumn[RowCount] = {};
for (int i = 0; i < RowCount; i ) {
for (int j = 0; j < RowCount; j ) {
array[i][j] = Я * J;
cout << setw(4) << array[i][j] << " ";
SumRow[i] += масив[i][j];
SumColumn[i] += масив[j][i];
}
cout << endl;
}
for (int i = 0; i < 10; i ) {
cout << "Сумма в " << i + 1 << " рядку = " << SumRow[i] << " ";
cout << "Сумма в " << i + 1 << " стовпці = " << SumColumn[i] << endl;
}
system("pause");
return 0;
}
Строка “SumColumn[i] += масив[j][i];” складає ще незаповнені випадковими числами осередку масиву.
Я не знаю, чи є актуальною ще тема. останній коммент дуже давній. Але мене цікавить те саме запитання, що в пред'ідущем коменті.
рішення задачі 2 працює тільки з константою і тільки з трійкою. З іншими числами суми невірні. Хотілося б пояснень, якщо це можливо. І рішення з рандомних введенням і з введенням розміру масиву з клавіатури
Завдання №2 з рандомних введенням.
#include
#include
#include
#include
int main ()
{
setlocale(LC_ALL, “rus”);
srand(time(NULL));
Int N, M, i, j;
Printf (“Введите количество строк двумерного массива: “);
зсапЕ (“%d”, &N);
Printf (“Введите количество столбцов двумерного массива: “);
зсапЕ (“%d”, &M);
INT ** A = новий INT *[N];
for (int count = 0; count < N; count )
A[count] = new int [N];
Printf ("\nИсходный двухмерный массив: \n");
for (i = 0; i < N; i )
{
for (J = 0; j < N; j )
{
A[i][j] = rand()%99+ 1;
Printf ("%4d ", A[i][j]);
}
Printf ("\n");
}
Printf ("\nСумма элементов по строкам\n");
ІНТ суми;
for (i = 0; i < N; i )
{
сунь = 0;
for (J = 0; j < N; j )
{
сунь = А +[i][j];
}
Printf ("%d-я строка: %d \n", i, суми);
}
Printf ("\nСумма элементов по столбцам\n");
ІНТ sumj;
for (J = 0; j < N; j )
{
sumj = 0;
for (i = 0; i < N; i )
{
sumj = А +[i][j];
}
Printf ("%d-й столбец: %d \n", j, sumj);
}
for (int count = 0; count < N; count )
delete [] A[count];
return 0;
}
Завдання №2 з введенням значень масиву з клавіатури
#include
INT N = Const 4;
int main ()
{
setlocale(LC_ALL, “rus”);
Int А[N][N];
int i, j;
Printf (“\nÇàïîëíèòå äâóìåðíûé ìàññèâ% дх% d ÷ ÷ èñëàìè ïîñòðî II,: \n”, N, N);
for (i = 0; i < N; i )
{
for (J = 0; j < N; j )
{
Printf ("A[%d][%d] = ", i, j);
зсапЕ ("%d", &A[i][j]);
}
}
Printf ("\nÈñõîäíûé äâóìåðíûé ìàññèâ: \n");
for (i = 0; i < N; i )
{
for (J = 0; j < N; j )
{
Printf ("%2d", A[i][j]);
}
Printf ("\n");
}
Printf ("\nÑóììà ýëåìåíòîâ ïî ñòðîêàì\n");
ІНТ суми;
for (i = 0; i < N; i )
{
сунь = 0;
for (J = 0; j < N; j )
{
сунь = А +[i][j];
}
Printf ("%d-ÿ ñòðîêà: %d \n", i, суми);
}
Printf ("\nÑóììà ýëåìåíòîâ ïî ñòîëáöàì\n");
ІНТ sumj;
for (J = 0; j < N; j )
{
sumj = 0;
for (i = 0; i < N; i )
{
sumj = А +[i][j];
}
Printf ("%d-é ñòîëáåö: %d \n", j, sumj);
}
return 0;
}
спасибо))
ух, в Рандома зробив описку в циклах за стовпцями, фальсифікований
int main ()
{
setlocale(LC_ALL, “rus”);
srand(time(NULL));
Int N, M, i, j;
Printf (“Введите количество строк двумерного массива: “);
зсапЕ (“%d”, &N);
Printf (“Введите количество столбцов двумерного массива: “);
зсапЕ (“%d”, &M);
INT ** A = новий INT *[N];
for (int count = 0; count < N; count )
A[count] = new int [N];
Printf ("\nИсходный двухмерный массив: \n");
for (i = 0; i < N; i )
{
for (J = 0; j < M; j )
{
A[i][j] = rand()%99+ 1;
Printf ("%4d ", A[i][j]);
}
Printf ("\n");
}
Printf ("\nСумма элементов по строкам\n");
ІНТ суми;
for (i = 0; i < N; i )
{
сунь = 0;
for (J = 0; j < M; j )
{
сунь = А +[i][j];
}
Printf ("%d-я строка: %d \n", i, суми);
}
Printf ("\nСумма элементов по столбцам\n");
ІНТ sumj;
for (J = 0; j < N; j )
{
sumj = 0;
for (i = 0; i < M; i )
{
sumj = А +[i][j];
}
Printf ("%d-й столбец: %d \n", j, sumj);
}
for (int count = 0; count < N; count )
delete [] A[count];
return 0;
}