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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
PtahaOne
0 / 0 / 0
Регистрация: 04.10.2011
Сообщений: 33
#1

Сортировка по характеристикам - C++

28.12.2011, 02:36. Просмотров 303. Ответов 1
Метки нет (Все метки)

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
#include <iostream.h>
#include <windows.h>
 
int main ()
{
        SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
        int **mas, n, m, i, j, j_0=-1, har_str1, har_str2, temp, temp1;
        cout<<"введите кол-во строк: "<< endl;
    cin>>n;
    cout<<"Введите кол-во столбцов: "<< endl;
    cin>>m;
    mas=new int*[n];
    for(i=0; i<n; i++)
        mas[i]=new int[m];
    cout<<"введите элементы массива: "<< endl;
    for ( i=0;i<n;i++){
 for(j=0;j<n;j++){
  mas[i][j]=rand()%4-5;
  cout<<mas[i][j]<<" ";
 }    cout<<endl;
}
 
        cout<<"Исходный массив: "<<endl;
    for(i=0; i<n; i++)
    {
        for(j=0; j<m; j++)
                {
                        cout.width(4);
            cout<<mas[i][j]<<"   ";
                }
            cout<<endl;
    }
        // поиск столбца с нулевым элементом
    for(i=0; i<m && j_0==-1; i++)
    {
        for(j=0; j<n && j_0==-1; j++)
            if(mas[j][i]==0)
                                j_0=i;
    }
        if(j_0!=-1)
                cout<<"столбцы где есть нулевые элементы: "<<j_0<<endl;
        else
                cout<<"столбцов с нулями нет"<<endl;
    // сортировка
        for(i=0; i<n-1; i++)
                for(j=0; j<n-i-1; j++)
                {
                        har_str1=har_str2=0;
                        for(temp=0; temp<m; temp+=2)
                        {
                                if(mas[j][temp]>0)
                                        har_str1+=mas[j][temp];
                                if(mas[j+1][temp]>0)
                                        har_str2+=mas[j+1][temp];
                        }
                        if(har_str1<har_str2)
                                for(temp=0; temp<m; temp++)
                                {
                                        temp1=mas[j][temp];
                                        mas[j][temp]=mas[j+1][temp];
                                        mas[j+1][temp]=temp1;
                                }
                }
        cout<<"Полученный массив: "<<endl;
    for(i=0; i<n; i++)
    {
        for(j=0; j<m; j++)
                {
                        cout.width(5);
            cout<<mas[i][j]<<" ";
                }
            cout<<endl;
    }
           return 0; 
}
Доброй ночи всем, нашел програмку переделал немного, но она не хочет правильно сортировать почему не подскажите?
Характеристикой строки целочисленной матрицы назовем сумму ее положительных четных элементов. Переставляя строки заданной матрицы.
Юзал поиск, ничего путевого не нашел...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2011, 02:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка по характеристикам (C++):

Найти целое число по его известным характеристикам (делимость, сумма цифр) - C++
Тема: Функции2. 5. Трое друзей были свидетелями ДТП. Первый заметил, что номер автомобиля правонарушителя делится на 2, 7, 11. Второй...

Сортировка Шелла. Написал программу, не могу понять, почему сортировка не выполняется - C++
Программа создает динамический массив с рандомным заполнением. Дальше выбор сортировок, пузырьком или сортировка Шелла. Вот она то и не...

Сортировка слиянием. В каком куске кода происходит сортировка и каким именно образом? - C++
Помогите, пожалуйста, разобраться. Подскажите в каком куске кода происходит сортировка и каким именно образом? #include &lt;iostream&gt; ...

Быстрая сортировка (сортировка Хоара) для связных списков - C++
есть у кого готовый алгоритм? или подскажите как реализовать

Быстрая сортировка(сортировка Хоара). Отсортировать фрагмент массива - C++
Мне нужно отсортировать фрагмент массива, расположенный между первым и последним отрицательным элементом. Немогу понять как устоновить...

Сортировка Шелла и пирамидальная сортировка для символов - C++
Здраствуйте, можете пожалуйста привести пример сортировок шелла и пиромидальной сортировки для символов, а то ничего не могу ...

1
valeriikozlov
Эксперт С++
4670 / 2496 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
28.12.2011, 04:07 #2
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
#include <iostream.h>
#include <windows.h>
 #include <stdlib.h>
int main ()
{
        SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
        int **mas, n, m, i, j, j_0=-1, har_str1, har_str2, temp, temp1;
        cout<<"введите кол-во строк: "<< endl;
    cin>>n;
    cout<<"Введите кол-во столбцов: "<< endl;
    cin>>m;
    mas=new int*[n];
    for(i=0; i<n; i++)
        mas[i]=new int[m];
    //cout<<"введите элементы массива: "<< endl;
    for ( i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            mas[i][j]=rand()%10-5;
        //  cout<<mas[i][j]<<" ";
        }    
        //cout<<endl;
    }
 
        cout<<"Исходный массив: "<<endl;
    for(i=0; i<n; i++)
    {
        for(j=0; j<m; j++)
                {
                        cout.width(4);
            cout<<mas[i][j]<<"   ";
                }
            cout<<endl;
    }
        // поиск столбца с нулевым элементом
    for(i=0; i<m && j_0==-1; i++)
    {
        for(j=0; j<n && j_0==-1; j++)
            if(mas[j][i]==0)
                                j_0=i;
    }
        if(j_0!=-1)
                cout<<"столбцы где есть нулевые элементы: "<<j_0<<endl;
        else
                cout<<"столбцов с нулями нет"<<endl;
    // сортировка
        for(i=0; i<n-1; i++)
                for(j=0; j<n-i-1; j++)
                {
                        har_str1=har_str2=0;
                        for(temp=0; temp<m; temp++)
                        {
                                if(mas[j][temp]>0 && mas[j][temp]%2==0)
                                        har_str1+=mas[j][temp];
                                if(mas[j+1][temp]>0 && mas[j+1][temp]%2==0)
                                        har_str2+=mas[j+1][temp];
                        }
                        if(har_str1<har_str2)
                                for(temp=0; temp<m; temp++)
                                {
                                        temp1=mas[j][temp];
                                        mas[j][temp]=mas[j+1][temp];
                                        mas[j+1][temp]=temp1;
                                }
                }
        cout<<"Полученный массив: "<<endl;
    for(i=0; i<n; i++)
    {
        for(j=0; j<m; j++)
                {
                        cout.width(5);
            cout<<mas[i][j]<<" ";
                }
            cout<<endl;
    }
           return 0; 
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2011, 04:07
Привет! Вот еще темы с ответами:

C/C++ FAQ :: Быстрая сортировка (сортировка Хоара) - C++
Вопрос, скорее академический, по мотивам реализации. Вот в faq приведена реализация этого метода сортировки на C++. В коде есть следующий...

Быстрая сортировка (сортировка методом Хоара) - C++
Ввести массив x1,x2,...,x20 в диапазоне . Требуется расположить отрицательные элементы в порядке убывания. Вывести массивы до и после...

2 сортировки: пирамидальная сортировка и сортировка слиянием - C++
Реализовать два улучшенных алгоритма сортировки. Для каждого алгоритма вычислить показатель качества сортировки (количество операций, т.е....

Сортировка вектора по полю(Сортировка вставками) - C++
Здравствуйте! Нужно написать сортировку вектора по полю weight класса tomato. Вот класс: #pragma once #include &lt;iostream&gt; ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru