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

Ответы 6

  • У меня все отлично компилируется
  • В чем вы открываете?
    • Автор:

      tiger52
    • 6 лет назад
    • 0
  • Открываю в Visual Studio 2012
    • Автор:

      ericoboyd
    • 6 лет назад
    • 0
  • #include "stdafx.h" в начале прописали?
  • Я работаю в dev-c++. Тогда указывали бы свою платформу
    • Автор:

      pancracio
    • 6 лет назад
    • 0
  • #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 << "Меню";

     cout << "1) Сформировать массив из случайных чисел размером n.";

     cout << "2) Вывести массив на экран сформированный массив.";

     cout << "3) Найти максимальный элемент в верхней и нижней четвертях матрицы";

     cout << "4) Обмен значениями произвольной строки с произвольным столбцом";

     cout << "0) Выход";

     cout << "Ваш выбор: ";

     while (!(cin >> answer)) {     //делаем проверку на ввод букв символов итд  

      cout << "Вы ввели символ или букву. Требуется вводить только цифрыВвод: ";

      cin.clear();

      fflush(stdin);

     }

     system("cls");

     switch (answer)

     {

     case 1:

     {  

         cout << "Какого размера будет квадратичная матрица (x*x)?: ";

         while (!(cin >> n))

            {     //делаем проверку на ввод букв символов итд  

      cout << "Вы ввели символ или букву. Требуется вводить только цифрыВвод: ";

      cin.clear();

      fflush(stdin);

         }

            create(A, n);

      cout << "Массив из случайных чисел сформирован!"<<endl;;

      system("pause");

      break;

     }

     case 2:

     {

      if(n != 0){

       cout << "Вывод массива на экран.";

       show(A, n);

      }else cout << "Посетите пункт 1" << endl;

      system("pause");

      break;

     }

     case 3:

     {

      if(n != 0){

       flag = true;

       cout << "Нахождение максимального значения элемента в матрице.";

       find_min_max(A,n, pos_max_row, pos_min_col);

      }else cout << "Посетите пункт 1" << endl;

      system("pause");

      break;

     }

     case 4:

     {

      if(flag == true)

      {

       cout << "Обмен значениями произвольной строки с произвольным столбцом.";

       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("");

    }

    }

    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  <<"Изменяемый столбец: " << 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);

    }

    • Автор:

      buddyqpwa
    • 6 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years