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

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

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

помогите сделать сортировку массива. - C++

29.10.2011, 01:11. Просмотров 528. Ответов 3
Метки нет (Все метки)

есть вектор(одномерный массив). из рандомного числа элементов, и рандомными элементами от 0 до 100.

вывод такого массива.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "stdafx.h"
#include "iostream"
#include "time.h"
using namespace std;
 
 
int main()
{   srand(time(0));
    setlocale (0,"rus");
    system("cls");
    int N;
    int A[1000];
    int B[100][10];
    int i,j;
    N=rand()%70+30;
    cout<<"Количество элементов массива: "<<N<<endl;
    
    for (i=0;i<N;i++)
    {
        A[i]=rand()%100;
        cout<<A[i]<<" ";
        }
    cout<<endl<<endl;
нужно сделать сортировку массива. представить в виде двумерного. заполненного таким образом, в первом столбце идут числа меньше 10, во втором меньше 20 и т.д. Так чтобы заполнение шло снизу вверх.
0
Миниатюры
помогите сделать сортировку массива.  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.10.2011, 01:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос помогите сделать сортировку массива. (C++):

как сделать сортировку этого массива структур? - C++
как сделать сортировку этого массива структур по name, autor и god? struct mas { char name; char autor; int god; }; ...

Сортировку вставками меняем на Пирамидальную сортировку и на Сортировку подсчётом - C++
Здравствуйте. Я не как не могу разобраться.Помогите. У меня есть листинг сортировки вставками: #include &quot;stdafx.h&quot; #include...

База данных. Помогите доработать сортировку! - C++
Доброе время суток!) Нужна помощь! Создал базу данных. ФИО, число, месяц, год рождения, адресс. Создал массив (10 элементов) данных...

Запомнить данные в классе в виде массива слов. Помогите - не код, а совет как сделать. - C++
Здравстуйте! Задание стоит так: Программа должна открыть файл Go.txt и считать с него текстовую информацию в виде отдельных слов. в...

Сортировка массива структур через сортировку массива указателей - C++
Ошибка возникает в функции void sort(student **ppStud, int k, char ch). Кто видит ошибку - помогите, пожалуйста. Код программы: ...

Вычислить произведение элементов массива и произвести сортировку массива - C++
в одномерном массиве состоящем из N вещественных элементов вычислить произведение элементов массива. Упорядочить элементы массива по...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
29.10.2011, 06:59 #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
80
81
82
83
84
85
86
#include "stdafx.h"
#include "iostream"
#include "time.h"
using std::cin;
using std::cout;
using std::endl;
 
#include <iomanip>
using std::setw;
 
void addToTwoDemArray(int a[], int aSize){  
    int b[10][10];
    int j;
    for(int i = 0; i < aSize; ++i){
        if(i == 0){
            j = 0;
        }else if(a[i-1]/10 < a[i]/10){
            j = 0;
        }
        if(j<=9){
            b[(a[i]/10)][9-j] = a[i];
            j++;
        }
    }
 
    for(int k = 0; k < 10; ++k){
        for(int l = 0; l < 10; ++l){
            if(b[l][k] >= 0 && b[l][k] < 100){
                cout << setw(3) << b[l][k] << " ";
            } else {
                cout << setw(4) << " ";
            }
        }
        cout << endl;
    }
}
 
void sortA(int a[], int arraySize){
 
    int tempNum;
 
    for(int i = 1; i < arraySize; i++){
        tempNum = a[i];                                 
        int next = i;                                           
 
        while(next >0 && (a[next-1] > tempNum)){   
            a[next] = a[next-1];                   
            next--;                                       
        }
        a[next] = tempNum;                        
    }
}
 
 
 
int main() {   
    int n;
    const int bRows = 10;
    const int bColumns = 10;
    int a[100];
    int i;
 
    srand(time(NULL));
    setlocale (0,"rus");
    system("cls");
 
    n=rand()%70+30;
 
    cout<<"Количество элементов массива: "<<n<<endl;
 
    for (i=0;i<n;i++){
        a[i]=rand()%100;
        cout<<a[i]<<" ";
    }
    cout<<endl<<endl;
 
    sortA(a,n);
    for (i=0;i<n;i++){
        cout<<a[i]<<" ";
    }
    cout<<endl<<endl;
 
    addToTwoDemArray(a,n);
    cin.get();
    return 0;
}
1
cpld
1 / 1 / 0
Регистрация: 28.10.2011
Сообщений: 7
29.10.2011, 10:40 #3
Нужно одномерный массив A сначала отсортировать, затем завести еще один одномерный (!)
массив B на 10 (!) элементов, пройтись по массиву A и занести в B индексы тех элементов
массива A, где происходит переход от десятка к десятку. Это минимальное количество
нужной информации (для диапазона 0-100).
Если Вам нужен именно такой двумерный массив, как Вы указали, то тут возможны варианты.
0
nail25
0 / 0 / 0
Регистрация: 08.10.2011
Сообщений: 11
29.10.2011, 14:58  [ТС] #4
здорово. спасибо большое!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.10.2011, 14:58
Привет! Вот еще темы с ответами:

Напишите программу, которая выполняет неполную сортировку массива: ставит в начало массива три самых меньших - C++
Напишите программу, которая выполняет неполную сортировку массива: ставит в начало массива три самых меньших по величине элемента в...

не могу сделать сортировку - C++
здравствуйте,помогите пожалуйста,уже хрен знает сколько мучаюсь и никак не могу осилить сортировку в такое задаче: В одномерном...

Как правильно сделать сортировку? - C++
Никак не получается отсортировать так, чтобы сначала сортировались люди военнообязанные и по году рождения, а затем невоеннообязанные. ...

Сделать параллельную сортировку методом выборов - C++
Может есть у кого-то код примерный. Или написанный. Скиньте плез


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
29.10.2011, 14:58
Ответ Создать тему
Опции темы

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