Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2012, 13:07   #1
rostik123
Пользователь
 
Регистрация: 19.10.2011
Сообщений: 51
По умолчанию разделить массив

как разделить массив на части и отсортировать каждую часть отдельно любым методом ...
rostik123 вне форума Ответить с цитированием
Старый 05.11.2012, 13:53   #2
Murashov
Форумчанин
 
Аватар для Murashov
 
Регистрация: 30.10.2012
Сообщений: 121
По умолчанию

и в чём проблема?
Murashov вне форума Ответить с цитированием
Старый 05.11.2012, 13:56   #3
rmv240899
Форумчанин
 
Регистрация: 18.02.2012
Сообщений: 155
По умолчанию

Во-первых, на сколько частей разделить, и по каким критериям? А во-вторых, как меня уже опередил Murashov, в чем проблема, что не получается?
rmv240899 вне форума Ответить с цитированием
Старый 05.11.2012, 15:12   #4
rostik123
Пользователь
 
Регистрация: 19.10.2011
Сообщений: 51
По умолчанию

я вообще не понимаю как это написать...
для примера разбить на 8 частей любой массив ...
rostik123 вне форума Ответить с цитированием
Старый 05.11.2012, 15:40   #5
kuli4ok
Пользователь
 
Регистрация: 23.09.2012
Сообщений: 32
По умолчанию

массив статический или динамический?
Я помог вам? Помогите и вы мне:
WMZ: Z401849412998
WMR: R251473869576
kuli4ok вне форума Ответить с цитированием
Старый 05.11.2012, 15:57   #6
rostik123
Пользователь
 
Регистрация: 19.10.2011
Сообщений: 51
По умолчанию

динамический.
rostik123 вне форума Ответить с цитированием
Старый 05.11.2012, 16:03   #7
kuli4ok
Пользователь
 
Регистрация: 23.09.2012
Сообщений: 32
По умолчанию

Тогда можно сделать двумерный массив. В нем количество строк будет соответствовать количеству частей на которые надо разбить массив, а каждая строка будет состоять из общего количества элементов начального массива, поделенного на количество строк. Ну а каждую строку матрицы отсортировать пузырьковым методом. Подходит такое решение?
Я помог вам? Помогите и вы мне:
WMZ: Z401849412998
WMR: R251473869576
kuli4ok вне форума Ответить с цитированием
Старый 05.11.2012, 16:07   #8
rostik123
Пользователь
 
Регистрация: 19.10.2011
Сообщений: 51
По умолчанию

думаю, что подойдет.
rostik123 вне форума Ответить с цитированием
Старый 05.11.2012, 16:43   #9
Helloween
Форумчанин
 
Регистрация: 24.04.2012
Сообщений: 300
По умолчанию

Вперед или вперед =)
Помог? Оставляем отзыв =)
Helloween вне форума Ответить с цитированием
Старый 05.11.2012, 17:20   #10
kuli4ok
Пользователь
 
Регистрация: 23.09.2012
Сообщений: 32
По умолчанию

Код:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
    srand(time(0));
    printf("Укажите размер начального массива: ");
    int *k = new int;
    scanf("%d", k);
    int *mass_1;
    mass_1 = new int[*k];
    bool oper=false;
    int *l = new int;
    while(oper==false)
    {
        printf("На сколько частей разделить массив: ");
        scanf("%d", l);
        if((*k%*l)==0)
        {
            oper = true;
        }
        else
        {
            printf("\n\nРазмер массива должен быть кратен количеству частей! Введите количество частей сново!\n\n");
        }
    }
    int *s = new int;
    *s = *k/(*l);
    int **mass;
    mass = new int*[*l];
    for(int i=0; i<*l; i++)
    {
        mass[i]=new int[*s];
    }
    printf("\n\nИсходный массив: \n");
    for(int i=0; i<*k; i++)
    {
        mass_1[i]=rand()%10;
        printf("%d ", mass_1[i]);
    }
    printf("\n\nМатрица полученая после разделения массива:\n");
    for(int i=0; i<*l; i++)
    {
        for(int j=0; j<*s; j++)
        {
            mass[i][j]=mass_1[i*(*s)+j];
            printf("%d ",mass[i][j]);
        }
        puts("");
    }
    int *temp = new int;
    for(int i=0; i<*l; i++)
    {
        for(int j=0; j<*s-1; j++)
        {
            for(int o=0; o<*s-1; o++)
            {
                if(mass[i][o]>=mass[i][o+1])
                {
                    *temp = mass[i][o];
                    mass[i][o]=mass[i][o+1];
                    mass[i][o+1]=*temp;
                }
            }
        }
    }
    printf("\n\nМатрица после сортировки\n");
    for(int i=0; i<*l; i++)
    {
        for(int j=0; j<*s; j++)
        {
            printf("%d ", mass[i][j]);
        }
        puts("");
    }

    for(int i=0; i<*l; i++)
    {
        delete [] mass[i];
    }
    delete [] mass;
    delete temp;
    delete s;
    delete [] mass_1;
    delete k;
    delete l;
    return 0;
}
Я помог вам? Помогите и вы мне:
WMZ: Z401849412998
WMR: R251473869576
kuli4ok вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разделить время xedoss PHP 6 04.09.2012 22:35
разделить строку!!!! dzaymko Microsoft Office Excel 1 01.05.2012 17:03
Разделить строку Alex1991 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 20.02.2011 19:25
Разделить строку DKENT Общие вопросы Delphi 6 12.02.2011 02:04
помогите разделить Alar Общие вопросы Delphi 9 14.11.2006 06:13