С/ (с++) написать программу,меняющую местами в произвольной квадратной матрице столбец, содержащий минимальный элемент и строку,содержащую максимальный элемент матрицы. написать функции: -заполнения двумерного массива случайными числами из диапазона [-200; +200] ; -вывода двумерного массива; -поиска индексов минимального и максимального элемента матрицы; -обмена значениями элементов произвольного столбца и произвольной строки квадратной матрицы.
Ответы на вопрос:
#include "iostream"
#include "stdlib.h"
#include "locale.h"
#include "time.h"
using namespace std;
void create(int** arr, int n);
void show(int** arr, int n);
void max_quarter(int** arr, int n);
void find_min_max(int** arr, int n, int & pos_max_row, int & pos_min_col);
void change_row_column(int** arr, int n, int & pos_max_row, int & pos_min_col);
int main()
{
srand(time(null));
setlocale(lc_all, "russian");
bool flag = false;
int pos_max_row = 0, pos_min_col = 0;
int n=0;
int answer = 100;
int **a = 0;
a = (int**)malloc(n*sizeof(int));
if(! a)
{
int** a = (int**)malloc(n*sizeof(int));
}
while (answer ! = 0)
{
system("cls");
cout < < "меню\n";
cout < < "1) сформировать массив из случайных чисел размером n.\n";
cout < < "2) вывести массив на экран сформированный массив.\n";
cout < < "3) найти максимальный элемент в верхней и нижней четвертях матрицы\n";
cout < < "4) обмен значениями произвольной строки с произвольным столбцом\n";
cout < < "0) выход\n";
cout < < "ваш выбор: ";
while > > answer)) { //делаем проверку на ввод букв символов итд
cout < < "вы ввели символ или букву. требуется вводить только цифры\nввод: ";
cin.clear();
fflush(stdin);
}
system("cls");
switch (answer)
{
case 1:
{
cout < < "какого размера будет квадратичная матрица (x*x)? : ";
while > > n))
{ //делаем проверку на ввод букв символов итд
cout < < "вы ввели символ или букву. требуется вводить только цифры\nввод: ";
cin.clear();
fflush(stdin);
}
create(a, n);
cout < < "массив из случайных чисел сформирован! "< < endl; ;
system("pause");
break;
}
case 2:
{
if(n ! = 0){
cout < < "вывод массива на экран.\n";
show(a, n);
}else cout < < "посетите пункт 1" < < endl;
system("pause");
break;
}
case 3:
{
if(n ! = 0){
flag = true;
cout < < "нахождение максимального значения элемента в матрице.\n";
find_min_max(a,n, pos_max_row, pos_min_col);
}else cout < < "посетите пункт 1" < < endl;
system("pause");
break;
}
case 4:
{
if(flag == true)
{
cout < < "обмен значениями произвольной строки с произвольным столбцом.\n";
change_row_column(a,n, pos_max_row, pos_min_col);
}else cout < < "посетите пункт 3" < < endl;
system("pause");
break;
}
system("pause");
return 0;
}
}
}
void create(int **arr, int n)
{
for(int i=0; i< n; i++)
{
arr[i]=(int*)malloc(n*sizeof(int));
if(! arr[i])
{
arr[i]=(int*)malloc(n*sizeof(int));
}
for(int j=0; j< n; j++)
{
arr[i][j]= -200 + rand()%401;
}
}
}
void show(int **arr, int n)
{
for (int i=0; i< n; i++)
{
for(int j=0; j< n; j++)
{
printf("%7d", arr[i][j]);
}
printf("\n");
}
}
void find_min_max(int** arr, int n, int & pos_max_row, int & pos_min_col){
int min = arr[0][0];
int max = arr[0][0];
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
if(arr[i][j] > max)
{
max = arr[i][j];
pos_max_row = i;
}
if(arr[i][j] < min)
{
min = arr[i][j];
pos_min_col = j;
}
}
}
cout < < "минимальное значение массива: " < < min < < endl;
cout < < "максимальное значение массива: " < < max < < endl;
}
void change_row_column(int** arr,int n, int & pos_max_row, int & pos_min_col){
cout < < "массив до преобразования. " < < endl;
show(arr,n);
cout < < "изменяемая cтрока: " < < pos_max_row < < "\nизменяемый столбец: " < < pos_min_col < < endl;
for(int i = 0; i < n; i++){
int temp = arr[i][pos_min_col];
arr[i][pos_min_col] = arr[pos_max_row][i];
arr[pos_max_row][i] = temp;
}
cout < < "массив после преобразования. " < < endl;
show(arr,n);
}
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Аля4Б01.05.2023 13:48
-
aium0819.07.2021 00:14
-
leesasha08304.08.2022 15:16
-
Аноним2002130408.07.2020 05:26
-
kek20057008.01.2022 17:28
-
Yelena24092006806.05.2022 05:57
-
zaira1979zaira1118.11.2021 05:42
-
варвара56353653608.10.2020 19:01
-
olegsolomein20123.01.2023 22:58
-
rororo520922.02.2023 01:31
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.