Транспонировать матрицу при определенных условиях - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите , пожалуйста , решить задачу. Дана действительная матрица размерности .

Если среднее арифметическое элементов стоящих над главной диагональю больше суммы элементов стоящих на побочной диагонали, то поменять местами строки и столбцы (транспонировать матрицу). В противном случае матрицу оставить без изменения.

Решение задачи: «Транспонировать матрицу при определенных условиях»

textual
Листинг программы
#include <iostream>
#include <time.h>
using namespace std;
void print(int **a,int n, int m);
int **trans(int **a,int n, int m);
void main()
{
    setlocale(LC_ALL,"Russian");
    int n, m;
    cout<<"Введите размерность двумерного массива "<<endl;
    cin>>n>>m;
    int **mas;
    mas = new int *[n]; 
    for ( int i = 0 ; i < n ; i++)
        mas [i] = new int [m] ;             
    for (int i=0;i<n;i++)
       for (int j=0;j<m;j++)
            mas[i][j]=rand()%30+10;
    print (mas,n,m);
    trans (mas,n,m);
    cout<<endl;
    print (mas,n,m);
    for ( int i = 0 ; i <n ; i++)
        delete [] mas [i];
    delete [] mas;
 
    system ("pause");
}
void print(int **a,int n,int m)
{
    for (int i=0;i<n;i++)
    {
       for (int j=0;j<m;j++)
       {
            cout<<a[i][j]<<" ";
       }
       cout<<endl;
    }
}
int **trans(int **a,int n,int m)
{
    int r ;
    for ( int i=0; i<n ; i++)
        for ( int j=0; j<n; j++)
            if (i<j) 
            {
                r=a[i][j]; a[i][j]=a[j][i]; a[j][i]=r;
            }
    return 0;
}

Объяснение кода листинга программы

Код выполняет следующие действия:

  1. Задаёт размерность двумерного массива с помощью ввода с клавиатуры.
  2. Выделяет память под массив указателей на int.
  3. Внутри цикла выделяет память под каждый int массива и инициализирует его случайными числами от 10 до 40.
  4. Выводит на экран исходный массив.
  5. Транспонирует массив с помощью функции trans.
  6. Выводит на экран транспонированный массив.
  7. Освобождает память, выделенную под массив и его элементы. Функция print выводит на экран содержимое массива. Функция trans транспонирует массив.

Оцени полезность:

7   голосов , оценка 3.714 из 5
Похожие ответы