Дана квадратная матрица размером nxn
. Найти минимальный элемент среди элементов, расположенных ниже главной диагонали, найти максимальный элемент, среди элементов расположенных выше побочной диагонали. Найденные минимальный и максимальный элементы поменять местами и вывести их индексы.
// main_secondary_diagonal.cpp: определяет точку входа для консольного приложения. #include "stdafx.h" #include <iostream> #include <iomanip> using namespace std; int main(int argc, char* argv[]) { srand(time(NULL)); int size_array; // размер квадратной матрицы setlocale(LC_ALL, "rus"); cout << "Введите размер квадратной матрицы: "; cin >> size_array; // динамическое создание двумерного массива int **arrayPtr = new int* [size_array]; for (int count = 0; count < size_array; count++) arrayPtr[count] = new int [size_array]; for (int counter_rows = 0; counter_rows < size_array; counter_rows++) { for (int counter_columns = 0; counter_columns < size_array; counter_columns++) { arrayPtr[counter_rows][counter_columns] = rand() % 100; // заполнение массива случайными числами cout << setw(2) << arrayPtr[counter_rows][counter_columns] << " "; // вывод на экран двумерного массива } cout << endl; } cout << endl; int min = arrayPtr[1][0], // минимальный елемент массива, ниже главной диагонали row_min = 1, // номер строки минимального элемента column_min = 0; // номер столбца минимального элемента // поиск минимального элемента в массиве, ниже главной диагонали for (int counter_rows = 1; counter_rows < size_array; counter_rows++) { for (int counter_columns = 0; counter_columns < counter_rows ; counter_columns++) { if ( arrayPtr[counter_rows][counter_columns] < min ) { min = arrayPtr[counter_rows][counter_columns]; row_min = counter_rows; column_min = counter_columns; } } } cout << "min" << "[" << (row_min + 1) << "][" << (column_min + 1) << "]" << " = " << min << endl; int max = arrayPtr[0][0], // максимальный элемнет массива, выше побочной диагонали row_max = 0, // номер строки максимального элемента column_max = 0; // номер столбца максимального элемента for (int counter_rows = 0; counter_rows < size_array - 1; counter_rows++) { for (int counter_columns = 0; counter_columns < (size_array - counter_rows - 1); counter_columns++) { if ( arrayPtr[counter_rows][counter_columns] > max ) { max = arrayPtr[counter_rows][counter_columns]; row_max = counter_rows; column_max = counter_columns; } } } cout << "max" << "[" << (row_max + 1) << "][" << (column_max + 1) << "]" << " = " << max << endl; //////////////////перестановка элементов//////////////////////////////////////////////// arrayPtr[row_min][column_min] = max; arrayPtr[row_max][column_max] = min; //////////////////////////////////////////////////////////////////////////////////////// cout << "nМассив после перестановки максимального и минимального элементов:n"; for (int counter_rows = 0; counter_rows < size_array; counter_rows++) { for (int counter_columns = 0; counter_columns < size_array; counter_columns++) { cout << setw(2) << arrayPtr[counter_rows][counter_columns] << " "; // вывод на экран двумерного массива } cout << endl; } cout << endl; cout << "min" << "[" << (row_max + 1) << "][" << (column_max + 1) << "]" << " = " << min << endl; cout << "max" << "[" << (row_min + 1) << "][" << (column_min + 1) << "]" << " = " << max << endl; // удаление двумерного динамического массива for (int count = 0; count < size_array; count++) delete []arrayPtr[count]; system("pause"); return 0; }
Результат работы программы показан ниже:
CppStudio.com
Введите размер квадратной матрицы: 5 85 0 69 71 20 31 1 7 12 10 93 19 8 18 18 1 35 41 98 41 45 36 73 22 66 min[4][1] = 1 max[3][1] = 93 Массив после перестановки максимального и минимального элементов: 85 0 69 71 20 31 1 7 12 10 1 19 8 18 18 93 35 41 98 41 45 36 73 22 66 min[3][1] = 1 max[4][1] = 93
Комментарии
Mekan Nepesow
#include<iostream>
#include<iomanip>
#include<stdlib.h>
using namespace std;
int main()
{
int A[100][100];
int n;
cin>>n;
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
{
// cin>>A[i][j];
A[i][j]=rand()%50;
}
}
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
{
cout<<setw(5)<<A[i][j];
}
cout<<endl;
}
int min=A[1][1];
int m=2,k=0,l=0;
for(int i=2; i<=n; i++)
{
for(int j=1;j<=m; j++)
{
if(A[i][j]<min)
{
min=A[i][j];
k=i;
l=j;
}
}
m++;
}
m=0;int r,t,max=-1;
for(int i=n; i>=1; i—)
{
for(int j=n; j>=n-m; j—)
{
if(A[i][j]>max)
{
max=A[i][j];
r=i;
t=j;
}
}
}
int h=0;
h=A[k][l];
A[k][l]=A[r][t];
A[r][t]=h;
cout<<endl;
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
{
cout<<setw(5)<<A[i][j];
}
cout<<endl;
}
cout<<A[k][l]<<endl;
cout<<«i—>»<<k<<endl;
cout<<«j—>»<<l<<endl;
cout<<A[r][t]<<endl;
cout<<«i—>»<<r<<endl;
cout<<«j—>»<<t<<endl;
return 0;
}
Костя Сатив
gornyyvladimir
gornyyvladimir