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

Обработка массива - C++

Восстановить пароль Регистрация
 
ninja_cat
0 / 0 / 0
Регистрация: 08.10.2012
Сообщений: 14
24.02.2014, 19:12     Обработка массива #1
Написать функцию, принимающую на вход произвольное целочисленное значение и возвращающую массив, содержащий последовательность чисел от 1 до этого значения, в котором каждое число последовательности находится в заведомо случайной позиции.(Например,последовательных запуска данной функции с параметром 7 могут сгенерировать последовательности вида {2, 5, 7, 3, 4, 1, 6} или {5, 1, 3, 4, 6, 2, 7}.А также функцию сортировки его по возрастанию(напрмиер,{2, 5, 7, 3, 4, 1, 6},выведет {1, 2, 3, 4, 5, 6, 7} и функцию,которая определяет последний элемент в массиве(например,{2, 5, 7, 3, 4, 1, 6} и выведет 6).Помогите пожалуйста,как это все в одной программе реализовать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.02.2014, 19:12     Обработка массива
Посмотрите здесь:

C++ обработка массива
обработка массива на С++ C++
Обработка массива C++
Обработка одномерного массива C++
C++ Обработка многомерного массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
S_el
1907 / 1502 / 296
Регистрация: 15.12.2013
Сообщений: 5,920
24.02.2014, 19:14     Обработка массива #2
Разбейте задачу на подзадачи и реализовывайте по одной.
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
24.02.2014, 19:36     Обработка массива #3
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
#include <iostream>
#include <algorithm>
#include <ctime>
#include <cstdlib>
 
int* Arr(int const len)
{
    int* parr = new int[len];
    for(int i = 0; i < len; ++i)
    {
        parr[i] = i + 1;
    }
    std::random_shuffle(parr, parr + len);
    return parr;
}
 
int main ()
{
    srand(time(0));
    int len;
    std::cout << "len: ";
    std::cin >> len;
    int* parr = Arr(len);
    for(int i = 0; i < len; ++i)
    {
        std::cout << parr[i] << "  ";
    }
    delete[] parr;
    parr = 0;
    return 0;
}
ninja_cat
0 / 0 / 0
Регистрация: 08.10.2012
Сообщений: 14
24.02.2014, 19:40  [ТС]     Обработка массива #4
Добавлено через 47 секунд
igorrr37, А можете, пожалуйста, дать комментарии к коду,чтобы разобраться.
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
24.02.2014, 20:42     Обработка массива #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
31
#include <iostream>
#include <algorithm>
#include <ctime>
#include <cstdlib>
 
int* Arr(int const len)
{
    int* parr = new int[len];//выделение памяти под массив
    for(int i = 0; i < len; ++i)// заполнение массива числами от 1 до len
    {
        parr[i] = i + 1;
    }
    std::random_shuffle(parr, parr + len);//рандомная перестановка чисел в массиве
    return parr;
}
 
int main ()
{
    srand(time(0));// инициализация рандом-генератора (для функтора rаndom_shuffle)
    int len;
    std::cout << "len: ";
    std::cin >> len;//ввод длины массива
    int* parr = Arr(len);
    for(int i = 0; i < len; ++i)// вывод массива в консоль
    {
        std::cout << parr[i] << "  ";
    }
    delete[] parr;// удаление массива
    parr = 0;
    return 0;
}
ninja_cat
0 / 0 / 0
Регистрация: 08.10.2012
Сообщений: 14
24.02.2014, 21:04  [ТС]     Обработка массива #6
igorrr37, а как теперь мне в эту программу вставить сортировку,не используя qsor?
Yandex
Объявления
24.02.2014, 21:04     Обработка массива
Ответ Создать тему
Опции темы

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