0 / 0 / 0
Регистрация: 08.01.2016
Сообщений: 1
1

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

08.01.2016, 01:48. Показов 4478. Ответов 1

Author24 — интернет-сервис помощи студентам
Я в принципе почти все понимаю, программа работает, но объяснить этот участок кода я не могу я вообще запутался.(Завтра экзамен)Прошу вашей помощи, объясните этот участок кода:
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
 int *c, *y;
//Массив сумм эл строк, и массив индексов
      c = new int[n+1];
      y = new int[m+1];
 
     for(int j=1; j<=n;j++)
        c[j]=0;
//Подсчет суммы
     for(int i=1; i<=n;i++)
      for(int j=1; j<=m;j++)
        c[i]+= a[i][j];
 
//Сорт. массив сумм и матрицу
       int x, l, k, i;
 
       for(k=1;k<=n-1;k++)
       {
                l=k; x=c[l];
                for(i=k+1;i<=n;i++)
                if(c[i]<x)
                {
                        l=i; x=c[l];
                        for(int j=1; j<=m;j++)
                        y[j]=a[l][j];
                }
                c[l]=c[k];
                c[k]=x;
                for(int j=1; j<=m;j++)
                {
                        a[l][j]=a[k][j];
                        a[k][j]=y[j];
                }
       }
Вот код всей программы
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include <vcl.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
int n, m;
int **a;
 
int main(int argc, char* argv[])
{
         char ss;
         do
         {
 
         printf("Input size N, M : ");
         scanf("%d%d",&n,&m);
 
//Резерв.пам. для динамич. массива.
         a = new int*[n+1];
         for(int i=0; i<=n;i++)  a[i] = new int[m+1];
 
//Генерируем массив
         randomize();
         for(int i=1; i<=n;i++)
         for(int j=1; j<=m;j++)
         a[i][j]=random(21)-10;
 
//Принтф матрицы.
      printf("Massiv : \n ");
 
      for(int i=1; i<=n;i++)
      {
        for(int j=1; j<=m;j++)
           printf(" %8.2d",a[i][j]);
           printf("\n ");
      }
 
      int *c, *y;
//Массив сумм эл строк, и массив индексов
      c = new int[n+1];
      y = new int[m+1];
 
     for(int j=1; j<=n;j++)
        c[j]=0;
//Подсчет суммы
     for(int i=1; i<=n;i++)
      for(int j=1; j<=m;j++)
        c[i]+= a[i][j];
 
//Сорт. массив сумм и матрицу
       int x, l, k, i;
 
       for(k=1;k<=n-1;k++)
       {
                l=k; x=c[l];
                for(i=k+1;i<=n;i++)
                if(c[i]<x)
                {
                        l=i; x=c[l];
                        for(int j=1; j<=m;j++)
                        y[j]=a[l][j];
                }
                c[l]=c[k];
                c[k]=x;
                for(int j=1; j<=m;j++)
                {
                        a[l][j]=a[k][j];
                        a[k][j]=y[j];
                }
       }
 
//вывод сорт. матрицы
        printf("Sort Massiv : ");
        printf("\n ");
        for(int i=1; i<=n;i++)
        {
                for(int j=1; j<=m;j++)
                printf(" %8.2d",a[i][j]);
                printf("\n ");
        }
        printf ("\nRepeat-1,Else-Exit\n");
        ss=getch();
        }
        while(ss == '1');
 
        puts("\nPress any key ... ");
        getch();
        return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.01.2016, 01:48
Ответы с готовыми решениями:

Упорядочить элементы строк матрицы по возрастанию, а сами строки по возрастанию суммы элементов
Дана матрица Х. Упорядочить элементы строк матрицы по возрастанию, а сами строки по возрастанию...

Упорядочить строки матрицы по возрастанию суммы их элементов
Кому не сложно. Задание:Дана матрица размером NxM. Упорядочить ее строки по возрастанию суммы их...

Упорядочить строки матрицы по возрастанию суммы их элементов
Помогите сделать задание. Дана матрица размером NxM. Упорядочить ее строки по возрастанию суммы их...

Упорядочить строки матрицы по возрастанию суммы их элементов
Помогите сделать задание. Дана матрица размером NxM. Упорядочить ее строки по возрастанию суммы их...

1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32830 / 21168 / 8147
Регистрация: 22.10.2011
Сообщений: 36,429
Записей в блоге: 8
08.01.2016, 12:19 2
Это к Билдеру не имеет никакого отношения, тут ничего из его фич не используется, поэтому переезжаем в общий раздел...
0
08.01.2016, 12:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.01.2016, 12:19
Помогаю со студенческими работами здесь

Упорядочить строки матрицы по возрастанию суммы их элементов
Дана матрица размером NxM. Упорядочить ее строки по возрастанию суммы их элементов. #include...

Упорядочить строки матрицы по возрастанию суммы их элементов
В матрице размером N×M упорядочить строки по возрастанию суммы их элементов.

Упорядочить строки целочисленной прямоугольной матрицы по возрастанию суммы модулей их элементов
Доброго времени суток. Буду очень признателен, если поможете - данный сайт уже пару раз...

Упорядочить строки матрицы по возрастанию суммы модулей их элементов (сортировка не происходит)
там по сути 3 варианта сортировки я нашел, но не сортирует (мож кто знает почему)? я только учусь,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru