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

Расположить в порядке возрастания методом подсчета - C++

Восстановить пароль Регистрация
 
Kolbusdkiy
 Аватар для Kolbusdkiy
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 112
21.12.2013, 23:50     Расположить в порядке возрастания методом подсчета #1
Помогите написать код.

Дано двумерный массив целых чисел. Все элементы массива, при делении на 4 дают в остатке 2, расположить в порядке возрастания методом подсчета.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.12.2013, 23:50     Расположить в порядке возрастания методом подсчета
Посмотрите здесь:

C++ Расположить столбцы мартицы в порядке возрастания k строки
Расположить столбцы в порядке возрастания C++
Расположить в порядке возрастания методом подсчета C++
Массивы. Расположить элементы в порядке возрастания. Использовать сортировку методом вставок C++
C++ Каждый чётный столбец квадратной матрицы расположить в порядке убывания, а каждый нечётный в порядке возрастания
Расположить слова в порядке возрастания по количеству символов C++
Расположить слова в строке в порядке возрастания количества символов в них C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,147
Завершенные тесты: 1
22.12.2013, 00:35     Расположить в порядке возрастания методом подсчета #2
Kolbusdkiy, Алгоритмы сортировок
Kolbusdkiy
 Аватар для Kolbusdkiy
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 112
22.12.2013, 14:04  [ТС]     Расположить в порядке возрастания методом подсчета #3
^Tecktonik_KiLLeR, и как мне его к моей программе притулить?
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
22.12.2013, 14:24     Расположить в порядке возрастания методом подсчета #4
если массив a[][] размером n*m уже есть то можно так:
C++
1
2
3
4
5
6
7
8
9
10
int i_min, i, j, t;
for(i=0; i<n*m; i++)
    if(a[i/m][i%m]%4==2)
    {
        i_min=i;
        for(j=i+1; j<n*m; j++)
            if(a[j/m][j%m]%4==2 && a[i_min/m][i_min%m]>a[j/m][j%m])
                i_min=j;
        t=a[i/m][i%m];a[i/m][i%m]=a[i_min/m][i_min%m];a[i_min/m][i_min%m]=t;
    }
Kolbusdkiy
 Аватар для Kolbusdkiy
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 112
22.12.2013, 15:52  [ТС]     Расположить в порядке возрастания методом подсчета #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
#include <iostream>
using namespace std;
 
int main() {
    int n,m;
    cin>>n>>m;  
    int arr[n][m];
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            cin>>arr[i][j];
        
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++) {
            if(arr[i][j]%4==2) {
                i_min=i;
                for(j=i+1; j<n*m; j++)
                    if(a[j/m][j%m]%4==2 && a[i_min/m][i_min%m]>a[j/m][j%m])
                        i_min=j;
                    t=a[i/m][i%m];
                    a[i/m][i%m]=a[i_min/m][i_min%m];
                    a[i_min/m][i_min%m]=t;
            }
        }
        for(int i=0;i<n;i++) {
                cout<<endl;
                for(int j=0;j<m;j++)
                    cout<<arr[i][j]<<' '; 
            }
            return 0;
}
Добавлено через 29 минут
Помогите!

Добавлено через 35 минут
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
22.12.2013, 17:26     Расположить в порядке возрастания методом подсчета #6
Kolbusdkiy, что именно не устраивает в коде? если есть ошибки компилятора, то какие ?
Kolbusdkiy
 Аватар для Kolbusdkiy
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 112
22.12.2013, 18:36  [ТС]     Расположить в порядке возрастания методом подсчета #7
valeriikozlov, ну вот код, без ошибок, ну программа не работает:
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
#include <iostream>
using namespace std;
 
int main() {
    int n,m,t,i_min;
    cin>>n>>m;  
    int arr[n][m];
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            cin>>arr[i][j];
        
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++) {
            if(arr[i][j]%4==2) {
                i_min=i;
                for(j=i+1; j<n*m; j++)
                    if(arr[j/m][j%m]%4==2 && arr[i_min/m][i_min%m]>arr[j/m][j%m])
                        i_min=j;
                    t=arr[i/m][i%m];
                    arr[i/m][i%m]=arr[i_min/m][i_min%m];
                    arr[i_min/m][i_min%m]=t;
            }
        }
        for(int i=0;i<n;i++) {
                cout<<endl;
                for(int j=0;j<m;j++)
                    cout<<arr[i][j]<<' '; 
            }
            return 0;
}
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
22.12.2013, 19:09     Расположить в порядке возрастания методом подсчета #8
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
#include <iostream>
using namespace std;
 
int main() {
    int n,m,t,i_min, jj;
    cin>>n>>m;  
    int arr[100][100];
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++)
            cin>>arr[i][j];
        
    for(int i=0;i<n;i++)
        for(int j=0;j<m;j++) {
            if(arr[i][j]%4==2) {
                i_min=i*m+j;
                for(jj=i*m+j+1; jj<n*m; jj++)
                    if(arr[jj/m][jj%m]%4==2 && arr[i_min/m][i_min%m]>arr[jj/m][jj%m])
                        i_min=jj;
                    t=arr[i][j];
                    arr[i][j]=arr[i_min/m][i_min%m];
                    arr[i_min/m][i_min%m]=t;
            }
        }
        for(int i=0;i<n;i++) {
                cout<<endl;
                for(int j=0;j<m;j++)
                    cout<<arr[i][j]<<' '; 
            }
            return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2013, 19:33     Расположить в порядке возрастания методом подсчета
Еще ссылки по теме:

C++ Каждый чётный столбец матрицы расположить в порядке убывания, а каждый нечётный в порядке возрастания
C++ Расположить столбцы матрицы в порядке возрастания элементов K-ой строки
C++ Расположить элементы массива в порядке возрастания
C++ Элементы на нечетных местах массива расположить в порядке возрастания
C++ Расположить четыре числа в порядке возрастания

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

Или воспользуйтесь поиском по форуму:
Kolbusdkiy
 Аватар для Kolbusdkiy
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 112
22.12.2013, 19:33  [ТС]     Расположить в порядке возрастания методом подсчета #9
Спасибо)
Yandex
Объявления
22.12.2013, 19:33     Расположить в порядке возрастания методом подсчета
Ответ Создать тему
Опции темы

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