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

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

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

Упорядочить массив - C++

23.11.2012, 22:47. Просмотров 446. Ответов 11
Метки нет (Все метки)

дан массив, у примеру:
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

сделать нужно так:
1 2 3 4 5
18 6 7 8 22
19 20 9 23 24
21 10 11 12 25
13 14 15 16 17

Помогите, как его так отсортировать.немогу никак((
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2012, 22:47
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Упорядочить массив (C++):

Из двух целочисленных массивов различной размерности сформировать общий массив. Упорядочить полученный массив - C++
Кто может сделайте пожалуйста. Из двух целочисленных массивов различной размерности сформировать общий массив. Упорядочить полученный...

Упорядочить массив по невозрастанию элементов. вывести получившийся массив - C++
Упорядочить массив Е(5,5) по невозрастанию элементов третьего столбца. вывести получишвийся массив ни чего не получается

Структуры. Дан массив записей, содержащих дату и время. Упорядочить этот массив в порядке «возрастания» - C++
Дан массив записей, содержащих дату (число, месяц, год) и время (час, минута, секунда). Упорядочить этот массив в порядке «возрастания».

Массив: Упорядочить массив по возрастанию меньших элементов - C++
Дано массив упорядочить их по возрастанию меньших элементов. элементы массива и его размер надо вводить с клавиатуры. Слепил свой но...

Упорядочить массив - C++
Упорядочить массив так, чтобы вначале шли по возрастанию элементы, стоящие на чётных местах, а потом стоящие на нечётных. помогите! не...

Упорядочить массив - C++
Дан массив d0, d1, d2,…, d3m-1. Написать программу построения массива с элементами, равными: d0, d3, d6, …, d3m-3, d1, d4, …, d3m-2, d2,...

11
NeonLost
Пес войны
75 / 86 / 3
Регистрация: 23.02.2012
Сообщений: 653
23.11.2012, 22:50 #2
Цитата Сообщение от victim_666 Посмотреть сообщение
1 2 3 4 5
18 6 7 8 22
19 20 9 23 24
21 10 11 12 25
13 14 15 16 17
(
по каким параметрам он отсортирован?
0
David Sylva
1289 / 951 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
23.11.2012, 22:50 #3
Наверное не массив, а матрица, что это за принцип сортировки?
0
victim_666
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 36
23.11.2012, 22:51  [ТС] #4
Цитата Сообщение от David Sylva Посмотреть сообщение
Наверное не массив, а матрица, что это за принцип сортировки?
да, матрица.не знаю как принцип называется, нам препод нарисовал на доске, сказал сделать по этому принципу.
0
David Sylva
1289 / 951 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
23.11.2012, 23:01 #5
Цитата Сообщение от victim_666 Посмотреть сообщение
да, матрица.не знаю как принцип называется, нам препод нарисовал на доске, сказал сделать по этому принципу.
А как же мы тебе поможем, если мы не знаем по какому принципу сортировать.
0
NeonLost
Пес войны
75 / 86 / 3
Регистрация: 23.02.2012
Сообщений: 653
23.11.2012, 23:02 #6
может так?
из такого

1 2 3 4 5
18 6 7 8 22
19 20 9 23 24
21 10 11 12 25
13 14 15 16 17

получить такой?
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
1
victim_666
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 36
23.11.2012, 23:06  [ТС] #7
Цитата Сообщение от David Sylva Посмотреть сообщение
А как же мы тебе поможем, если мы не знаем по какому принципу сортировать.
ну если матрица 5*5, то сначала заполняется полностью первая строка, во второй строке убираются крайние и т.д., пока не останется один элемент, после в том же порядке, только крайние элементы прибавляются.после заполняются края.
Как я вижу решение:
1 шаг) 1 2 3 4 5
6 7 8
9
2) 1 2 3 4 5
6 7 8
9
10 11 12
13 14 15 16 17
В третьем дополнить края
0
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
23.11.2012, 23:10 #8
Название: Безымянный.jpg
Просмотров: 36

Размер: 26.5 Кб
0
victim_666
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 36
23.11.2012, 23:10  [ТС] #9
Цитата Сообщение от Croessmah Посмотреть сообщение
да да да!!!
0
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
24.11.2012, 00:07 #10
Первое, что пришло в голову. Убого, но работает для квадратных матриц:
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
#include <cstdlib>
#include <iostream>
 
int main()
{
 
    const int size=5;
    int arr[size][size];
    memset(arr,0,size*size*sizeof(arr[0][0]));
 
 
 
    int num=1;
    int f=0;
    bool bFlag;
    for(int j=0;j<size;++j){
        bFlag=j>=(size/2);
        for(int i=(bFlag?(size-j-1):j);i<(bFlag?j+1:size-j);++i,++num){
            arr[i][j]=num;
        }
    }
    for(int j=0;j<size;++j){
        bFlag=j>=(size/2);
        for(int i=0;i<(bFlag?size-j-1:j);++i,++num){
            arr[i][j]=num;
        }
    }
    for(int j=0;j<size;++j){
        bFlag=j>=(size/2);
        for(int i=size-(bFlag?size-j-1:j);i<size;++i,++num){
            arr[i][j]=num;
        }
    }
    for(int j=0;j<size;++j){
        for(int i=0;i<size;++i){
            std::cout.width(4);
            std::cout<<arr[i][j];
        }
        std::cout<<std::endl;
    }
    system("PAUSE");
    return EXIT_SUCCESS;
}
1
victim_666
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 36
24.11.2012, 00:10  [ТС] #11
Цитата Сообщение от Croessmah Посмотреть сообщение
Первое, что пришло в голову. Убого, но работает для квадратных матриц:
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
#include <cstdlib>
#include <iostream>
 
int main()
{
 
    const int size=5;
    int arr[size][size];
    memset(arr,0,size*size*sizeof(arr[0][0]));
 
 
 
    int num=1;
    int f=0;
    bool bFlag;
    for(int j=0;j<size;++j){
        bFlag=j>=(size/2);
        for(int i=(bFlag?(size-j-1):j);i<(bFlag?j+1:size-j);++i,++num){
            arr[i][j]=num;
        }
    }
    for(int j=0;j<size;++j){
        bFlag=j>=(size/2);
        for(int i=0;i<(bFlag?size-j-1:j);++i,++num){
            arr[i][j]=num;
        }
    }
    for(int j=0;j<size;++j){
        bFlag=j>=(size/2);
        for(int i=size-(bFlag?size-j-1:j);i<size;++i,++num){
            arr[i][j]=num;
        }
    }
    for(int j=0;j<size;++j){
        for(int i=0;i<size;++i){
            std::cout.width(4);
            std::cout<<arr[i][j];
        }
        std::cout<<std::endl;
    }
    system("PAUSE");
    return EXIT_SUCCESS;
}
спасибо бро!!!только врятле мне поверят, что это я сделал.щас буду думать, как под себя код переделать)
0
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
24.11.2012, 00:29 #12
Цитата Сообщение от victim_666 Посмотреть сообщение
только врятле мне поверят, что это я сделал.щас буду думать, как под себя код переделать)
Тогда вариант попроще, только по другому будет работать, для матриц с четным размером(size), для нечетных так же
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
#include <cstdlib>
#include <iostream>
 
int main()
{
 
    const int size=5;
    int arr[size][size];
    int ds=size/2;
    int num=1;
    for(int j=0;j<size;++j){
        for(int i=ds-abs(ds-j);i<size-(ds-abs(ds-j));++i,++num){
            arr[i][j]=num;
        }
    }
    for(int j=0;j<size;++j){
        for(int i=0;i<ds-abs(ds-j);++i,++num){
            arr[i][j]=num;
        }
    }
    for(int j=0;j<size;++j){
        for(int i=size-(ds-abs(ds-j));i<size;++i,++num){
            arr[i][j]=num;
        }
    }
    for(int j=0;j<size;++j){
        for(int i=0;i<size;++i){
            std::cout.width(5);
            std::cout<<arr[i][j];
        }
        std::cout<<std::endl;
    }
    system("PAUSE");
    return EXIT_SUCCESS;
}
1
24.11.2012, 00:29
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2012, 00:29
Привет! Вот еще темы с ответами:

Упорядочить массив - C++
Здравствуйте Помогите, пожалуйста выполнить задание: Нужно отсортировать последовательность чисел (10 рандомных) по убыванию не...

Упорядочить массив - C++
Здравствуйте! Помогите пожалста вот с этой задачей: Задан массив из девяти элементов.Сформировать массив, в котором каждому элементу...

упорядочить массив - C++
Составить структурированную программу упорядочения массива X1,…, X10 положительных и отрицательных чисел так, чтобы в начале массива были...

Упорядочить массив! - C++
Дан массив размера N, все элементы которого, кроме первого, упорядочены по возрастанию. Сделать массив упорядоченным, переместив первый...


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

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

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