Для трех матриц написать перегруженные функции (тип элементов int, double, char) для выполнения следующих задач:
- инициализация квадратной матрицы (заполнение случайными значениями);
- вывод матрицы на экран;
- определение максимального и минимального элементов на главной диагонали матрицы;
- сортировка элементов по возрастанию отдельно для каждой строки матрицы.
Важно выполнить задание без использования шаблонов функций. Написала код, но выдаёт ошибку Е0304 c 27 по 38 рядки и С2661 на рядках 33-38. Кто может помочь и объяснить как исправить ошибки?
Код:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
void rndarray(int **, int, int);
void rndarray(double **, int, int);
void rndarray(char **, int, int);
void out_arr(int **, int, int);
void out_arr(double **, int, int);
void out_arr(char **, int, int);
int max_el(int **, int);
double max_el(double **, int);
char max_el(char **, int);
int min_el(int **, int);
double min_el(double **, int);
char min_el(char **, int);
int main()
{
srand(time(NULL));
const int size1 = 8,size2=8;
int arr_i[size1][size2];
double arr_d[size1][size2];
char arr_c[size1][size2];
rndarray(arr_i, size1, size2);
rndarray(arr_d, size1, size2);
rndarray(arr_c, size1, size2);
out_arr(arr_i, size1, size2);
out_arr(arr_d, size1, size2);
out_arr(arr_c, size1, size2);
cout << "max in array 1 main diagonal =\t" << max_el(arr_i, size1, size2);
cout << "max in array 2 main diagonal =\t" << max_el(arr_d, size1, size2);
cout << "max in array 3 main diagonal =\t" << max_el(arr_c, size1, size2);
cout << "max in array 1 main diagonal =\t" << min_el(arr_i, size1, size2);
cout << "max in array 2 main diagonal =\t" << min_el(arr_d, size1, size2);
cout << "max in array 3 main diagonal =\t" << min_el(arr_c, size1, size2);
}
void rndarray(int **ar, int s1, int s2)
{
for (int i = 0; i < s1; i++)
for (int j = 0; j < s2; j++)
ar[i][j] = rand() % 30;
}
void rndarray(double **ar, int s1, int s2)
{
for (int i = 0; i < s1; i++)
for (int j = 0; j < s2; j++)
ar[i][j] = rand() % 100 - 50;
}
void rndarray(char **ar, int s1, int s2)
{
for (int i = 0; i < s1; i++)
for (int j = 0; j < s2; j++)
ar[i][j] = rand() % 26 + 65;
}
void out_arr(int **ar, int s1, int s2)
{
for (int i = 0; i < s1; i++)
for (int j = 0; j < s2; j++)
{
cout << ar[i][j] << ' ';
}cout << endl;
}
void out_arr(double **ar, int s1, int s2)
{
for (int i = 0; i < s1; i++)
for (int j = 0; j < s2; j++)
{
cout << ar[i][j] << ' ';
}cout << endl;
}
void out_arr(char **ar, int s1, int s2)
{
for (int i = 0; i < s1; i++)
for (int j = 0; j < s2; j++)
{
cout << ar[i][j] << ' ';
}cout << endl;
}
int max_el(int **ar,int s1, int s2)
{
for (int i = 0; i < s1; i++)
{
int max = ar[i][0];
for (int j = 0; j < s2; j++)
{
if (i >= j)
if (ar[i][j] > max)max = ar[i][j];
}return max;
}
}
double max_el(double** ar, int s1, int s2)
{
for (int i = 0; i < s1; i++)
{
int max = ar[i][0];
for (int j = 0; j < s2; j++)
{
if (i >= j)
if (ar[i][j] > max)max = ar[i][j];
}return max;
}
}
char max_el(char **ar, int s1, int s2)
{
for (int i = 0; i < s1; i++)
{
int max = ar[i][0];
for (int j = 0; j < s2; j++)
{
if (i >= j)
if (ar[i][j] > max)max = ar[i][j];
}return max;
}
}
int min_el(int **ar, int s1, int s2)
{
for (int i = 0; i < s1; i++)
{
int min = ar[i][0];
for (int j = 0; j < s2; j++)
{
if (i <= j)
if (ar[i][j] > min)min = ar[i][j];
}return min;
}
}
double min_el(double **ar, int s1, int s2)
{
for (int i = 0; i < s1; i++)
{
int min = ar[i][0];
for (int j = 0; j < s2; j++)
{
if (i <= j)
if (ar[i][j] > min)min = ar[i][j];
}return min;
}
}
char min_el(char** ar, int s1, int s2)
{
for (int i = 0; i < s1; i++)
{
int min = ar[i][0];
for (int j = 0; j < s2; j++)
{
if (i <= j)
if (ar[i][j] > min)min = ar[i][j];
}return min;
}
}