Есть ответ 👍

С/ (с++) написать программу,меняющую местами в произвольной квадратной матрице столбец, содержащий минимальный элемент и строку,содержащую максимальный элемент матрицы. написать функции: -заполнения двумерного массива случайными числами из диапазона [-200; +200] ; -вывода двумерного массива; -поиска индексов минимального и максимального элемента матрицы; -обмена значениями элементов произвольного столбца и произвольной строки квадратной матрицы.

116
480
Посмотреть ответы 2

Ответы на вопрос:


#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);

}

KatyGey
4,5(53 оценок)

Если заюзать относительные пути, то должно быть -  %userprofile%\desktop

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS