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





Не зрозумію я навіщо у другому та третьому завданнях додаткові масиви.
У другому завданні в масив rowSum буде записуватись сума значень, які зберігаються в рядках двовимірного масиву ourMatrix. Окремо по кожному рядку.
У масив columnSum буде записана сума по стовпцях двовимірного масиву ourMatrix.
У третьому завданні – аналогічно. У комірки rowSum запишеться сума за рядками двовимірного масиву ourMatrix. Далі значення елементів rowSum буде порівняно між собою і буде знайдено рядок з максимальною сумою.
Каюсь, я не вчитувався в рішення, просто подивився, що якісь зайві масиви є.
Задача (дублюю щоб перед очима була): Порахувати суму елементів окремо в кожному рядку і визначити номер рядка, в якій ця сума максимальна.
// функція обчислення суми рядка
int rowsum(int **a, INT м, int i) {
int sum = 0;
for (int j = 0; j < м; ++j)
сума + = а[i][j];
повернення суми;
}
INT ** обр; // твій масив
Int N, м; // размер массива
int imaxsum = 0, maxsum = сума рядків(0);
// номер рядка з максимальною сумою та сума
for (int i = 1; i maxsum)
maxsum = сума, imaxsum = i;
}
Хіба так не краще?
мені не зовсім зрозуміло, як ти викликаєш функцію і передаєш до неї 0:
maxsum = rowsum(0);Адже в заголовку безумовно три параметри
int rowsum(int **a, int m, int i)Ну, я код схемотично описав, не перевіряв я його навіть близько.
Правильно так:
maxsum = сума рядків(a, м, 0);
А взагалі, код порізався весь щось…
напишіть код у тегах code /code
треба буде дізнатися, як зробити і додати до коментарів кнопку для написання коду
int rowsum(int **a, int m, int i) {
int sum = 0;
for (int j = 0; j < m; ++j) sum += a[i][j]; return sum; } int main() { int **arr; // твой массив int n, m; // размер массива //... int imaxsum = 0, maxsum = rowsum(a, m, 0); // номер строки с максимальной суммой и сумма for (int i = 1; i < n; ++i) int sum = rowsum(a, m, i); if (sum > maxsum)
maxsum = sum, imaxsum = i;
}
Написав у тегах
Ось теж вирішення другого завдання без зайвих масивів.
#includeusing namespace std;
int main()
{
int nLine, nRow, nSumLine=0, nSumRow=0;
cout << nLine;
cout << nRow;
int aArray[nLine][nRow];
for (int i=0; i < nLine; i++)
{
for (int j=0; j < nRow; j++)
{
cout << "Введите элемент " << j+1 << " строки " << i+1 <> aArray[i][j];
}
}
for (int i=0; i<nLine; i++)
{
nSumLine = 0;
for (int j=0; j<nRow; j++)
{
cout << "[" << i <<"]["<< j <<"]="<<aArray[i][j]<<" ";
nSumLine +=aArray[i][j];
}
cout << "Сумма элементов в строке " << i+1 <<" = " << nSumLine << "\n";
}
for (int j=0; j<nRow; j++)
{
nSumRow = 0;
for (int i=0; i< nLine; i++)
{
nSumRow +=aArray[i][j];
}
cout << " "<< j+1 << " = " << nSumRow << " ";
}
cout << "\n";
return 0;
}
А я взагалі так вивів
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
third = third + first[i][j];
fourth = fourth + first[j][i];
};
std::cout << "sum in string " << i + 1 << " = " << third << std::endl;
third = 0;
std::cout << "sum in colunm " << i + 1 << " = " << fourth << std::endl;
fourth = 0;
};