Форум программистов, компьютерный форум CyberForum.ru

Выполнить сортировку элементов в той строке матрицы сумма элементов в которой максимальная - C++

Восстановить пароль Регистрация
 
becksoe
1 / 1 / 0
Регистрация: 06.10.2010
Сообщений: 21
07.10.2010, 02:00     Выполнить сортировку элементов в той строке матрицы сумма элементов в которой максимальная #1
как я могу писать эту задачу. Задана матрица целых чисел. Выполнить сортировку элементоь в той строке матрицы сумма элементов в которой максимальная.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2010, 02:00     Выполнить сортировку элементов в той строке матрицы сумма элементов в которой максимальная
Посмотрите здесь:

C++ Напечатать квадрат той из двух матриц, в которой наименьший след (сумма диагональных элементов), считая, что такая матрица одна
C++ Задана матрица.ВЫполнить сортировку эл.по возрастанию в тех строках матрицы сумма элементов в которых положительная
Задана матрица целых чисел. Выполнить сортировку элементов в каждом столбце матрицы по возрастанию C++
C++ Сумму элементов в той строке, в которой нет отрицательных чисел
C++ Массив: Найти такую неразрывную последовательность положительных чисел, сумма элементов у которой максимальная.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
07.10.2010, 06:56     Выполнить сортировку элементов в той строке матрицы сумма элементов в которой максимальная #2
тебе нужно сделать функцию сортировки одной строки
а потом нужно сделать функцию нахождения суммы элементов одной строки

потом, применяя функцию суммы элементов в каждой строке, найти максимальную (запомнить номер строки)
а потом к этой строке применить функцию сортировки одной строки
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
07.10.2010, 11:19     Выполнить сортировку элементов в той строке матрицы сумма элементов в которой максимальная #3
Цитата Сообщение от becksoe
Пишите пожалуйста порядок программа.
поместить ваш код, мы будем смотреть
MILAN
 Аватар для MILAN
883 / 777 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
07.10.2010, 23:30     Выполнить сортировку элементов в той строке матрицы сумма элементов в которой максимальная #4
Сортировать как?

Добавлено через 25 минут
По возростанию!!!

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <iostream>
#include <ctime> 
#include <cmath>
 
using std::cout;
using std::cin;
using std::endl;
 
int main()
{    
     setlocale(LC_ALL,"Russian");
     srand((unsigned)time(NULL));
     int n,sum,max=0;
     int count,i,j,temp;
     int **arr;
     cout<<"Введите розмер матрицы: ";
     cin>>n;
     arr = new int*[n];
     cout<<"Матрица: "<<endl;
     for(i=0; i<n; i++)
     {
          arr[i] = new int[n];
          for(j=0; j<n; j++)
           {
             arr[i][j]=rand()%9+1;
             cout<<arr[i][j]<<"  ";
            }
        cout<<endl;
     }
     cout<<endl;
     cout<<"Отсортированая матрица:"<<endl;
     for(i=0; i<n; i++)
     {
         sum=0;
         for(j=0; j<n; j++)
         {
             sum+=arr[i][j];
         }
         if(sum>max)
         {
             max=sum;
             count=i;
         }
     }
          cout<<endl;
     for(i=0;i<n; i++)
     {
         for(j=i; j<n; j++)
         {
             if(arr[count][i]>arr[count][j])
             {
                 temp=arr[count][i];
                 arr[count][i]=arr[count][j];
                                             arr[count][j]=temp;
             }
         }
     }
     for(int i=0; i<n; i++)
     {
         for(int j=0; j<n; j++)
          {
              cout<<arr[i][j]<<"  ";
          }
       cout<<endl;
     }
     delete arr;
     system("pause");
   return 0;
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
08.10.2010, 00:53     Выполнить сортировку элементов в той строке матрицы сумма элементов в которой максимальная #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <algorithm>
#include <functional>
#include <numeric>
#include <iterator>
#include <cstdlib>
#include <ctime>
 
class rndNum {
    int limit;
public:
    rndNum(int l) : limit(l) {}
    int operator () () { return rand() % limit; }
};
 
int main(){
    const int ROWS = 5;
    const int COLUMNS = 10;
    int matrix[ROWS][COLUMNS];
    int sums[ROWS];
    
    srand(time(NULL));
    
    std::cout << "Matrix:" <<std::endl;
    for ( int i = 0; i < ROWS; ++i ){
        std::generate_n(matrix[i], COLUMNS, rndNum(10));
        sums[i] = std::accumulate(matrix[i], matrix[i] + COLUMNS, 0);
        std::copy(matrix[i], matrix[i] + COLUMNS, std::ostream_iterator<int>(std::cout, " "));
        std::cout << "\tSUM: " << sums[i] << std::endl;
    }
    
    int max_sum = *std::max_element(sums, sums + ROWS);
    int min_sum = *std::min_element(sums, sums + ROWS);
    
    std::cout << "Sorting rows with max sum ascendant, with min sum - descendant:" << std::endl;
    
    for ( int i = 0; i < ROWS; ++i ){
        if ( sums[i] == max_sum )
            std::sort(matrix[i], matrix[i] + COLUMNS, std::less<int>());
        if ( sums[i] == min_sum )
            std::sort(matrix[i], matrix[i] + COLUMNS, std::greater<int>());
        std::copy(matrix[i], matrix[i] + COLUMNS, std::ostream_iterator<int>(std::cout, " "));
        std::cout << "\tSUM: " << sums[i] << ( sums[i] == max_sum ? " MAX" : sums[i] == min_sum ? " MIN" : "" ) << std::endl;
    }
    
    return 0;
}
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
27.10.2010, 23:38     Выполнить сортировку элементов в той строке матрицы сумма элементов в которой максимальная #6
becksoe, Обыкновенно, не используя динамику.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream>
#include <algorithm>
#include <numeric>
#include <ctime>
#include <cstdlib>
#include <iomanip>
 
int main()
{
    srand(static_cast<unsigned>(time(0)));
    const int n=5;
    const int m=5;
    int Arr[n][m];
    for(int i=0; i<n; ++i)
    {
        for(int j=0; j<m; ++j)
        {
            Arr[i][j]=1+rand()%50;
        }
    }
    std::cout<<"Start matrix\n";
    for(int i=0; i<n; ++i)
    {
        for(int j=0; j<m; ++j)
        {
            std::cout<<std::setw(3)<<Arr[i][j]<<' ';
        }
        std::cout<<'\n';
    }
    int sum=std::accumulate(Arr[0], Arr[0]+m, 0);
    int temp_sum=0;
    int idx=0;
    for(int i=1; i<n; ++i)
    {
        temp_sum=std::accumulate(Arr[i], Arr[i]+m, 0);
        if(temp_sum>sum)
        {
            sum=temp_sum;
            idx=i;
        }
    }
    std::sort(Arr[idx], Arr[idx]+n);
    std::cout<<"Sorted matrix\n";
    for(int i=0; i<n; ++i)
    {
        for(int j=0; j<m; ++j)
        {
            std::cout<<std::setw(3)<<Arr[i][j]<<' ';
        }
        std::cout<<'\n';
    }
}
Yandex
Объявления
27.10.2010, 23:38     Выполнить сортировку элементов в той строке матрицы сумма элементов в которой максимальная
Ответ Создать тему
Опции темы

Текущее время: 20:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru