Упорядочить столбцы матрицы по возрастанию произведений элементов в каждом столбце

Упорядочить столбцы матрицы по возрастанию произведений элементов в каждом столбце.
7 ответов

m1Rr0r, Огромное спасибо! выручил)


Dessful, размер матрицы? Задается пользователем, или в программе? Пишите условия задач полностью!


Ev_Hyper, все условия на ваше усмотрение)


Dessful, с функциями или без?


Haif, с функциями.


Haif, Это бесплатный раздел, и здесь помогают бесплатно.
#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;
int main()
{
    srand((unsigned)time(NULL));
    int n, m;
    cout << "n = ";
    cin >> n;
    cout << "m = ";
    cin >> m;
    int **matrix = new int*[n];
    for(int i = 0; i < n; i++)
        matrix[i] = new int[m];
 
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < m; j++)
        {
            matrix[i][j] = rand() % 100;
            cout << matrix[i][j] << "\t";
        }
        cout << endl;
    }
 
    cout << endl << endl;
    int *p = new int[m];
    for(int i = 0; i < m; i++)
    {
        p[i] = 1;
        for(int j = 0; j < n; j++)
            p[i] *= matrix[j][i];
        cout << p[i] << " ";
    }
    for(int i = 0; i < m; i++)
    {
        for(int j = i + 1; j < m; j++)
        {
            if(p[j] < p[i])
            {
                //Меняем местами j - i  столбцы
                for(int k = 0; k < n; k++)
                {
                    int temp = matrix[k][j];
                    matrix[k][j] = matrix[k][i];
                    matrix[k][i] = temp;
                }
            }
        }
    }
    cout << endl << endl;
 
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < m; j++)
            cout << matrix[i][j] << "\t";
        cout << endl;
    }
 
    delete []p;
    for(int i = 0; i < n; i++)
        delete []matrix[i];
    delete []matrix;
    return 0;
}


Dessful, могу сделать, но платно, т.к. бесплатно тебе здесь никто не напишет программу
не надо деньги за помощь выклянчивать. Если не верите, что помогают бесплатно, почитайте темы и убедитесь сами.