Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

c++ 2 курс / 685

.txt
Скачиваний:
13
Добавлен:
12.02.2015
Размер:
2.02 Кб
Скачать
#include<iostream>

using namespace std;

int main()
{
int n = 0; // размерность матрицы
int maxElem = 0; // переменная для хранения значения максимального элемента
int middleElem = 0; // переменная для хранения значения элемента, на пересечении диагоналей
int colIndex = 0; // храним индексы максимального элемента по строке
int rowIndex = 0; // по столбцу
	
printf("Enter matrix dimension: ");
if (scanf("%d", &n)) { //  ввод значений
		
int** matrix = new int*[n]; // проинициализировали динамический массив размера n 
for (int i = 0; i < n; i++)
matrix[i] = new int[n];
		
for (int i = 0; i < n; i++) //заполнение матрицы случайными числами и вывод её на печать
		{
for (int j = 0; j < n; j++)
{
matrix[i][j] = rand() % 10;
printf("%d ", matrix[i][j]);
			}
printf("\n");
}
		
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
if ((i == j) || ((i + j) == (n - 1)) ) // учитываем только элемаенты на главной и побочной диагоналях
{
if (maxElem < matrix[i][j]) // находим максимальный элемент и запоминаем его индексы
{                           // если максимальный элемент меньше текущего,  
maxElem = matrix[i][j]; // то мы присваиваем ему значение элемента
colIndex = i;           // и запоминаем его индексы
rowIndex = j;
}
}
} 
}
		
printf("\nMax element is: %d with coordinates (%d, %d)\n", maxElem, colIndex, rowIndex);
if (n % 2 == 1) { // если кол-во элементов в строке и столбце - четное, то диагонали не пересекутся на определенном элементе
printf("Middle element is: %d, coordinates (%d, %d)\nPrinting new matrix...\n", matrix[n/2][n/2], n/2, n/2);
int buf = matrix[n/2][n/2]; //замена значений
matrix[n/2][n/2] = maxElem;
matrix[colIndex][rowIndex] = buf;
}
else {
printf("\nThere is no element on diagonals\n");
}
		
for (int i = 0; i < n; i++) // вывод на печать новой матрицы
{
for (int j = 0; j < n; j++)
{
printf("%d ", matrix[i][j]);
}
printf("\n");
}
}
else {
printf("\nError!");
}

system("pause");
return 0;
}
Соседние файлы в папке c++ 2 курс