Разбиение функции main на много маленьких функций
Задача: Создать функцию нахождения произведения треугольной матрицы ниже главной диагонали в квадратной матрице и сортировки ее второго столбца.
#include <iostream>
#include<stdlib.h>
using namespace std;
int main() {
const int n=5;
int matr[n][n];
for (int i = 0; i < n; ++i) // заполнение двумерного массива рандомными числами от 0 до 99
for (int x = 0; x < n; ++x)
matr[i][x] = rand() %99;
int s = 0; //Нахождение произведения
for (int i = 0; i < n; ++i)
for(int j = 0; j < i; ++j) {
s += matr[i][j];
}
cout << "\nТам число номеров из трианглярной matrix ниже главной diagonal = " << s << endl;
for(int k = 0; k < n-1; ++k) //Сортировка матрицы
for(int i = 0; i < n-1-k; ++i)
{
if (matr[i+1][n – 4] < matr[i][n – 4])
{
int c = matr[i][n – 4];
matr[i][n – 4] = matr[i + 1][n – 4];
matr[i + 1][n – 4] = c;
}
}
for (int i = 0; i < n; ++i, cout << endl) //выведение двумерного массива
for (int x = 0; x < n; ++x)
cout << " " << matr[i][x];
return 0;
}
У меня получилось реализовать это только в одной функции main,а нужно чтобы были маленькие подфункции
Пример по проще:
Я пробовал разбить на маленькие подфункции методом из примера, но ничем хорошим это не закончилось. Буду рад если поможете решить эту проблему!
Ответы (1 шт):
Автор решения: AlexGlebe
→ Ссылка
Сначала создаёте структуру объекта, в которой будут хранится все его переменные.
struct Matrix {
enum { n = 5 } ;
int matr [ n ] [ n ] ;
} ;
далее все четыре участки кода разделяете, передавая аргументом ссылку на свою структуру.
// заполнение двумерного массива рандомными числами от 0 до 99
void Matrix_Init ( Matrix & m ) {
for (int i = 0; i < m . n; ++i)
for (int x = 0; x < m . n; ++x)
m . matr[i][x] = rand() % 100 ;
}
//Нахождение произведения
int Matrix_Mult ( Matrix & m ) {
int r = 1;
for (int i = 0; i < m . n; ++i)
for(int j = 0; j < i; ++j) {
r *= m . matr[i][j];
}
return r ;
}
...
и в main их все вызываете :
Matrix m ;
Matrix_Init ( m ) ;
int r = Matrix_Mult ( m ) ;
cout << "\nПроизведение чисел из триангулярной "
"матрицы ниже главной диагонали = " << r << endl;
...
