Чтобы приступить к решению задач, предложенных в этой статье, вам необхідно знати что такое двумерные (многомерные) массивы . Задачи расположены от простой к сложной. Так что, если вы новичок в программировании, начинайте с первой, чтобы лучше разобраться с остальными.
1. Объявить двумерный массив, заповнити цілими числами і показати на екран.
2) Объявить двумерный массив и заполнить его построчно с клавиатуры. После заполнения – показать заполненную матрицу на экран и посчитать сумму элементов отдельно в каждом столбце и каждой строке.
3) Заповнити двовимірний масив випадковими числами від 10 до 100. Порахувати суму елементів окремо в кожному рядку і визначити номер рядка, в якій ця сума максимальна.
Ваші запитання, которые возникли при решении задач, залишайте в коментарях до цієї статті.
Завдання №3 можна вирішити використовуючи лише 1 цикл з вкладеним, місце трьох, як у відповіді.
Ці твердження потрібно код прикріплювати так-то
згоден, не варто давати такі безглузді рішення задач новачкам, в тому числі і мені. Потрібно привчати людей з самого початку використовувати менше непотрібних циклів, щоб поліпшити швидкість виконання програми..
Ось нормальне рішення 3-го завдання: cpp.sh/9zvl
дурість написана (про “поліпшити швидкість виконання програми”).
1. Спробував вирішити задачу №2, ввівши дві константи:
iLine на число строк
iColumn на число стовпців
тобто кількість рядків не збігається з кількістю стовпців. В результаті після компіляції, виводиться не вірне значення суми 3-го стовпця. У чому моя помилка?
2. У прикладі рішення задачі №2 в рядку коду №35, я так розумію замість columnSum[rowNum]—— повинно бути —–columnSum[columnNum] Або я помиляюсь?
ІМХО, якщо кількість рядків не збігається з кількістю стовпців, то потрібно створювати два окремих циклу для підрахунку суми рядків і стовпців.
та ж проблема була, ось таке вигадав.
#include
#include
using namespace std;
int main()
{
setlocale(LC_ALL, “rus”);
Const INT Строк = 2;
Const INT Стовп = 3;
int array[хід][stolb] = {};
ІНТ isumm[хід] = {};
ІНТ Ізюм[stolb] = {};
INT s(0), вулиця(0);
cout << "Заполните таблицу"<<endl;
for (int s = 0; s < хід; s )
{
for (INT = вул 0; вулиця < stolb; вул ++)
{
cout << "Введите значение " << s + 1 << "-й стройки и " << вулиця + 1 <> array[s][вулиця];
}
cout << endl;
}
for (int s = 0; s < хід; s )
{
for (INT = вул 0; вулиця < stolb; вул ++)
{
cout <<setw(5)<< array[s][вулиця];
isumm[s]+= масив[s][вулиця];
Ізюм[вулиця]+= масив[s][вулиця];
}
cout << endl;
cout << endl;
}
for (int i = 0; i < хід; i )
{
cout << i + 1 << "-ая строка cумма " << isumm[i] << " " << endl;
}
for (int i = 0; i < stolb; i )
{
cout << i + 1 << "-ый столбец cумма " << Ізюм[i] << " " << endl;
}
return 0;
}
А як заповнити прямокутну матрицю складається тільки з нулів і одиниць , має N рядків M стовпців
вітання. Вирішив друге завдання. все працює як треба. Потім зайшов подивитися рішення. Там теж все ок. АЛЕ. Не розумію навіщо записувати суму всіх рядків і всіх стовпців в масиви коли можна записати в змінні? Який у цьому сенс? Ось моє рішення. Робив без всяких красивостей.
#include
using namespace std;
int main()
{
INT matrixSize = 3;
int arr[matrixSize][matrixSize] = {};
// Введення двовимірного масиву з клавіатури
for(INT I = 0; i < matrixSize; i )
{
for(int j = 0; j > arr[i][j];
}
}
// Висновок двовимірного масиву
for(int i = 0; i < matrixSize; i )
{
for(int j = 0; j < matrixSize; j )
{
cout<<"\t"<<arr[i][j];
}
cout<<endl;
}
// Обчислення і виведення суми рядків
for(int i = 0; i < matrixSize; i )
{
int sum = 0;
for(int j = 0; j < matrixSize; j )
{
підсумовувати + = обр[i][j];
}
cout<<endl<<sum;
}
cout<<endl<<endl;
// обчислення і виведення суми стовпців
for(int i = 0; i < matrixSize; i )
{
int sum = 0;
for(int j = 0; j < matrixSize; j )
{
підсумовувати + = обр[j][i];
}
cout<<sum<<endl;
}
}
#include
using namespace std;
int main()
{
INT matrixSize = 3;
int arr[matrixSize][matrixSize] = {};
// Введення двовимірного масиву з клавіатури
for(INT I = 0; i < matrixSize; i )
{
for(int j = 0; j > arr[i][j];
}
}
// Висновок двовимірного масиву
for(int i = 0; i < matrixSize; i )
{
for(int j = 0; j < matrixSize; j )
{
cout<<"\t"<<arr[i][j];
}
cout<<endl;
}
// Обчислення і виведення суми рядків
for(int i = 0; i < matrixSize; i )
{
int sum = 0;
for(int j = 0; j < matrixSize; j )
{
підсумовувати + = обр[i][j];
}
cout<<endl<<sum;
}
cout<<endl<<endl;
// обчислення і виведення суми стовпців
for(int i = 0; i < matrixSize; i )
{
int sum = 0;
for(int j = 0; j < matrixSize; j )
{
підсумовувати + = обр[j][i];
}
cout<<sum<<endl;
}
}
Чому у мене код не правильно вставився?
Заданий двомірний масив А з 5-и рядків і 4-х стовпців. скласти програму, яка обчислює значення твору сум рядків.
#include
#include
using namespace std;
void main()
{
setlocale(LC_ALL, “RU”);
srand(time(NULL));
константні ІНТ ЛАВ = 5;
Const INT COLS = 4;
ІНТ г = 0;
INT х = 0;
ІНТ мс [ЛАВ][COLS]{};
INT ms2 [ЛАВ]{};
for (int i = 0; i < ЛАВ; i )
{
for (int j = 0; J г)
{
г = MS2[i];
х = я;
}
}
}
for (int i = 0; i < ЛАВ; i )
{
for (int j = 0; j < COLS; j )
{
cout << Міссісіпі[i][j] << "\t";
}
cout << "|" << "сумма " << i + 1 << " строки = " << MS2[i] << endl;
}
cout << "максимальное значение у " << x + 1 << " строки – " << від << endl;
}
задача №1:
#include
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;
}