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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 64, средняя оценка - 4.77
Schmetterling
Сообщений: n/a
#1

Одномерный димамический массив - C++

07.03.2010, 23:43. Просмотров 8664. Ответов 2
Метки нет (Все метки)

Помагите с заданием что то запутался совсем(



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

Одномерный массив. Найти наименьшие среди элементов первого массива, которые не входят во второй массив. C++
Массив: преобразорвать двумерный массив в одномерный и отсортировать его методом пузырька C++
Массив: Все элементы массива, кратные трем, записать в одномерный массив. C++
Дан двумерный массив размерностью 4*5. Сформировать одномерный массив C++
Массив: найти номера столбцов с положительными элементами и записать их в одномерный массив C++
Матрица и одномерный массив (Составить одномерный массив, содержащий количество буквенных символов в каждом из ее столбцов, подсчет символов) C++
Создать одномерный массив, заполнить его случайными значениями, отсортировать массив по убыванию C++
Сформировать одномерный массив, удалить первый элемент с заданным значением, сдвинуть массив циклически C++
C++ Дан двумерный массив 3х3. Получить одномерный массив из из отрицательных элементов матрицы.
Как сложить массив чтоб получился одномерный массив? C++
Целочисленный массив с размером 4*4 .Написать прогу , формирующую одномерный массив C++
Переписать произвольный одномерный массив в другой массив в обратном порядке C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OffyGhost
7 / 7 / 1
Регистрация: 04.03.2010
Сообщений: 107
08.03.2010, 05:13     Одномерный димамический массив #2
C++
1
2
3
4
5
6
int *a,n; 
printf("Укажите количество элементов массива: "); scanf("%d",&n);
a = new int[n];
// теперь динамический массив создан, как видно, неизвестно изначально, какой он будет размерности. К элементам можно обращаться так: a[2], a[3]...
// что-то делаем
delete a; // освобождаем память
Создание одномерного динамического массива
Amarted
157 / 19 / 2
Регистрация: 26.02.2010
Сообщений: 56
08.03.2010, 05:44     Одномерный димамический массив #3
to OffyGhost
Ты конечно очень подробно описал как динамически выделить память и осободить её, только вопрос был не много не такой...
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
#include <iostream>
using std::cout;
using std::cin;
int main()
{
    // Размер массива.
    int size = 0;
 
    // Счетчики.
    int i = 0, j = 0, cnt = 0;
 
    // Превый и второй нулевые элементы.
    int first = 0, second = 0; 
 
    // Исходный массив.
    int *arr = 0;
 
    // Массив для записи элементов между first и second.
    int *newArr = 0;
 
    // Получение размера миссива, динамическое
    // выделение памяти под него и инициализация
    // его вводимыми пользователем значениями.
    cout << "Enter array size: ";
    cin >> size;
    arr = new int[size];
    for( i; i < size; ++i )
    {
        cout << "Enter array[" << i << "]: ";
        cin >> arr[i];
    }
    cout <<'\n';
    i = 0;
 
    // Поиск первого нулевого элемента исходного массива.
    while( arr[i++] != 0 ); 
    if( i < size )
    first = i;  
 
    // Поиск второго нулевого элемента исходного массива.
    // и подсчет количества элементов между нулевыми значениями.
    while( arr[i++] != 0 ) 
        ++cnt;
    if( i <= size )
    second = i;     
 
    // Инициализация вторго массива значениями
    // мкжду первым и вторым нулевыми элементами исходного массива
    // если таковые найдены.
    if( i <= size )
    {
        // Динамическое выделение памяти под второй массив. 
        newArr = new int[cnt];
        // Скромная проверка наличия свободной памяти.
        if ( !newArr )
            cout << "No memory\n";
        // Присвоение значений между найдеными
        // нулевыми элементами.
        for( i = first, j=0; i <= second; ++j )
        {
            newArr[j] = arr[i++];
        }
 
        // Вывод получившегося второго массива.
        if ( first == second-1 )
            cout << "No values between zero elements.\nDone...\n";
        cout << "There are values between zero elements:\n";
        for( i = 0; i < cnt; ++i )
            cout << i+1 << ": " << newArr[i] << '\n';
    }   else
 
    // Ну а если не найдены...  
    cout << "There are no two zero elements.\nDone...\n";
    if ( newArr )
        delete[] newArr;
    return 0;
}
Если во время выполнения вылезет ошибка удали 72 и 73 строки.
Yandex
Объявления
08.03.2010, 05:44     Одномерный димамический массив
Ответ Создать тему
Опции темы

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