Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2021, 20:10   #1
Airy
 
Регистрация: 27.11.2021
Сообщений: 8
По умолчанию перегруженные функции. Ошибка Е0304 С2661

Для трех матриц написать перегруженные функции (тип элементов 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;
	}
}
Airy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перегруженные функции - вопрос к специалистам marenko.lilia Общие вопросы C/C++ 2 08.09.2014 01:51
Перегруженные методы, функции DELPHI 7 iCaesy Помощь студентам 1 03.10.2011 21:02
Перегруженные методы, функции DELPHI 7 iCaesy Помощь студентам 4 25.09.2011 19:02
Visual C++ Express 2010. Перегруженные функции. Демик Помощь студентам 10 06.05.2011 12:02