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

Сортировка строк массива по возрастанию

16.10.2017, 18:28. Показов 12941. Ответов 8
Метки нет (Все метки)

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
34
35
36
37
38
39
40
41
#include <conio.h>
#include <stdio.h>
 
int main()
{
 
 
    int mas[3][3];
    int p=1;
     printf("vvedite massiv 3x3 \n");
 
 
        //cycl vvoda massiva
    for(int i =0; i<3;i++)
        for(int j=0; j<3;j++)
            scanf("%d", &mas[i][j]);
 
 
        //cycl sozdania massiva
    for(int i =0; i<3;i++)
    {
 
        for(int j=0; j<3;j++)
 
            printf("%d ", mas[i][j]);
 
        printf("\n");
    }
 
      //proizveenie elementov stolbca
    for(int j=0; j<3;j++)
    {
        for(int i=0; i<3;i++)
            p*=mas[i][j];
 
        printf("\ Proizvedenie %d = %d\n ", j+1,p);
        p=1;
    }
     getch();
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.10.2017, 18:28
Ответы с готовыми решениями:

Сортировка строк двумерного массива по возрастанию значений первого столбца
Люди добрые помогите, пожалуйста! Суть задачи такова: 1. Создать двумерный массив 2....

Сортировка массива: сначала положительные по возрастанию, потом отрицательные по возрастанию
Пользователь вводит массив чисел,нужно отсортировать его методом выбора,что бы сначала шли...

Сортировка строк матрицы по возрастанию
#include &quot;stdafx.h&quot; #include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;time.h&gt; using namespace...

Сортировка элементов строк матрицы по возрастанию
Дано матрица с размером NxM надо сортировать элементы строка по возрастаню ввод данных 2 5 17...

8
192 / 166 / 82
Регистрация: 01.07.2016
Сообщений: 943
16.10.2017, 19:33 2
Лучший ответ Сообщение было отмечено APPEH как решение

Решение

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 <conio.h>
#include <stdio.h>
#include <algorithm>
 
int main()
{
    int mas[3][3];
    int p=1;
    printf("vvedite massiv 3x3 \n");
 
    //cycl vvoda massiva
    for(int i =0; i<3;i++)
        for(int j=0; j<3;j++)
            scanf("%d", &mas[i][j]);
 
 
    for(int i = 0; i < 3; ++i)
        for(int j = 0; j < 3; ++j)
            for(int k = 0; k < 3; ++k)
                if(mas[i][j] < mas[i][k])
                {
                    std::swap(mas[i][j], mas[i][k]);
                }
 
 
    //cycl sozdania massiva
    for(int i =0; i<3;i++)
    {
 
        for(int j=0; j<3;j++)
            printf("%d ", mas[i][j]);
 
        printf("\n");
    }
 
    //proizveenie elementov stolbca
    for(int j=0; j<3;j++)
    {
        for(int i=0; i<3;i++)
            p*=mas[i][j];
 
        printf("\ Proizvedenie %d = %d\n ", j+1,p);
        p=1;
    }
    getch();
    return 0;
}
1
1 / 1 / 1
Регистрация: 29.04.2017
Сообщений: 61
17.10.2017, 06:40  [ТС] 3
Спасибо большое. Очень помогли!)
0
1 / 1 / 1
Регистрация: 29.04.2017
Сообщений: 61
18.10.2017, 21:05  [ТС] 4
Вот возник еще вопрос... Если я код немного улучшил, теперь задается размеренность с клавиатуры. Как можно подправить код, чтоб считало и массив 4х4, 5х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
48
49
50
51
52
53
54
55
56
57
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#include <algorithm>
 
int main()
{   int n=10,m=10;
//int mas[n][m];
cout <<"n=";
cin>>n;
cout <<"m=";
cin>>m;
int ** mas=new int *[n];
for (int  i =0 ; i<n;i++)
mas[i]=new int [m];
  //  int mas[3][3];
    int p=1;
 
    printf("\n Zapolnite vash massiv \n \n");
 
 
    //cycl vvoda massiva
    for(int i =0; i<n;i++)
        for(int j=0; j<m;j++)
        scanf("%d", &mas[i][j]);
 
 
        //sortitovka massiva
        for(int i =0; i<n;++i)
        for(int j=0; j<m;++j)
    for (int k=0 ; k<3;++k)
    if (mas[i][j]<mas[i][k])
    {     std::swap(mas[i][j], mas[i][k]); }
 
 
    //cycl sozdania massiva
              cout <<"\n Poluchili massiv \n \n";
            for(int i=0; i<n;i++) {
        for(int j=0; j<m;j++)
            printf("%d ", mas[i][j]);
        printf("\n"); }
 
 
    //proizveenie elementov stolbca
    for(int j=0; j<m;j++)
    {
        for(int i=0; i<n;i++)
            p*=mas[i][j];
        printf("\n Proizvedenie %d = %d\n ", j+1,p);
        p=1;
    }
 
 
 
    getch();
    return 0;
}
0
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
18.10.2017, 21:17 5
Цитата Сообщение от APPEH Посмотреть сообщение
C++
1
for (int k=0 ; k<3;++k)
вероятно здесь тоже размер должен изменится
0
1 / 1 / 1
Регистрация: 29.04.2017
Сообщений: 61
18.10.2017, 21:56  [ТС] 6
Я менял и на j..и просто ставил большие числа. В итоге ошибку выдает
Миниатюры
Сортировка строк массива по возрастанию  
0
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
18.10.2017, 22:03 7
APPEH, вероятно k < 20 , а не j
0
1 / 1 / 1
Регистрация: 29.04.2017
Сообщений: 61
18.10.2017, 22:24  [ТС] 8
Та же ситуация...
Миниатюры
Сортировка строк массива по возрастанию  
0
Mental handicap
1246 / 624 / 171
Регистрация: 24.11.2015
Сообщений: 2,429
18.10.2017, 22:43 9
APPEH, ну верно, вы размеры матрицы заносите с клавы, а именно 5х5, а цикл у вас перебират матрицу 20х20, откуда такие цифры?

Добавлено через 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
    int n{};
    cin >> n;
    int ** mas = new int *[n];
    for (int i = 0; i < n; ++i) {
        mas[i] = new int[n];
    }
    int p = 1;
 
    printf("\n Zapolnite vash massiv \n \n");
 
 
    //cycl vvoda massiva
    for (int i = 0; i < n; ++i)
        for (int j = 0; j < n; ++j)
            scanf("%d", &mas[i][j]);
 
 
    //sortitovka massiva
    for (int i = 0; i<n; ++i)
        for (int j = 0; j<n; ++j)
            for (int k = 0; k<n; ++k)
                if (mas[i][j]<mas[i][k])
                {
                    std::swap(mas[i][j], mas[i][k]);
                }
 
 
    //cycl sozdania massiva
    cout << "\n Poluchili massiv \n \n";
    for (int i = 0; i<n; i++) {
        for (int j = 0; j<n; j++)
            printf("%d ", mas[i][j]);
        printf("\n");
    }
 
 
    //proizveenie elementov stolbca
    for (int j = 0; j<n; j++)
    {
        for (int i = 0; i<n; i++)
            p *= mas[i][j];
        printf("\n Proizvedenie %d = %d\n ", j + 1, p);
        p = 1;
    }
скажу свое фи, о форматировании кода, а ещё зачем здесь Си ф-и не понятно, а самое главное не забудьте очистить память после выделения динамического масиива.
0
18.10.2017, 22:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.10.2017, 22:43
Помогаю со студенческими работами здесь

Сортировка строк матрицы по возрастанию первых элементов
Составить программу, которая переформирует заданную матрицу так, чтобы ее строки расспалагались в...

Сортировка строк матрицы по возрастанию суммы их элементов
Собственно не могу понять какой алгоритм сортировки рядков по сумме их элементов? #include...

Сортировка строк матрицы по возрастанию максимальных элементов в строке
Подскажите как отсортировать двумерный массив по возрастанию. Например дан такой массив...

Сортировка четных строк матрицы по возрастанию, а нечетных - по убыванию
Здравствуйте! Есть задача: отсортировать чётные строки массива А по возрастанию, а нечётные по...


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

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

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