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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Обработка текстовых файлов http://www.cyberforum.ru/cpp-beginners/thread102190.html
помогите С помощью текстового редактора создать файл, содержащий текст, длина которого не превышает 1000 символов (длина строки текста не должна превышать 70 символов). Имя файла должно иметь расширение DAT. Написать программу, которая: выводит текст на экран дисплея; по нажатию произвольной клавиши поочередно выделяет каждое слово текста, начинающееся на гласную букву; определяет...
C++ Наибольшее количество слов Помогите пож...Дается последовательновсть из строчных латинских букв,между соседними словами-запятая,за последним словом точка.Напечатаь три буквы ,входящие в наибольшее количество слов этой последовательности... http://www.cyberforum.ru/cpp-beginners/thread102154.html
возвращение двух значений за раз C++
в массиве нужно выбрать минимально и максимально значения, а затем их местами поменять. чтоб узнать макс. и мин. пишу две функции заодно "запоминая" индекс. проблема, в том что функция не может возвращать одновременно и макс. число и его индекс (((( обойти не получается double PoiskMax (double *p, int length) { double max = -10000; int max_index = 0; for(int i=0; i<length; i++)
C++ "Identifier not found" при использовании функции system()
Хотел бы спросить о следующем: 1) Почему, когда я использую функцию system(), у меня выводит след. ошибку --> identifier not found Библиотеки пробовал, а точнее одну: <windows.h> 2) Вопрос о выделении памяти с помощью new-delete. 2.1 Почему, выделяя память под несколько массивов, пытаясь освободить память delete, ставя, например: delete mas; delete mass; в процессе выполнения программы...
C++ Файлы http://www.cyberforum.ru/cpp-beginners/thread102130.html
Как в Си сделать что бы когда я хочу создать файл,ввожу его название что бы мне выбивалось сообщение что файл уже существует если он есть
C++ Вывести списки студентов по группам Помогите пожалуйста в задаче, во условие: Написать программу формирования сведения об успеваемости студентов. Каждая запись этой ведомости должен содержать номер группы, фамилия студента, средний балл за последнюю сессию. Вывести списки студентов по группам. В каждой группе фамилии студентов разместить в порядке убывания среднего балла. Вывести списки я еще знаю как можно сделать а вот как... подробнее

Показать сообщение отдельно
Amarted
 Аватар для Amarted
157 / 19 / 2
Регистрация: 26.02.2010
Сообщений: 56
08.03.2010, 05:44     Одномерный димамический массив
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 строки.
 
Текущее время: 06:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru