Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Даша_93
3 / 3 / 0
Регистрация: 10.06.2012
Сообщений: 31
1

работыас массивом как со списком

03.11.2012, 06:57. Просмотров 236. Ответов 2
Метки нет (Все метки)

В конце при удалении i-го элемента выводит массив и еще левые числа, подскажите,где ошибка:
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
87
88
89
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
//  Создание массива 
int* z1(int n)
{
    int *a = new int[n];
    for(int i = 0; i<n; i++)
    {
        a[i] = 1+(rand() % 9);
    }
    return a;
}
//Добавление элемента 
int* z2(int n, int c, int d, int* z1)
{ 
    int *A = new int[n+1];
    for(int i = 0; i<d; i++)
    {   
        A[i] = z1[i];
    }
 
    for(int i = d+1; i<n+1; i++)
    {   
        A[i] = z1[i-1];
    }
    A[d] = c;
    delete z1;
    return A;
}
//Удаление i-того элемента
int* z3(int n, int*z1, int k)
{
        int *c = new int[n-1];
        for(int i = 0; i<=k; i++)
        {   
            c[i] = z1[i];
        }
 
        for(int i = k; i<n-1; i++)
        {   
            c[i] = z1[i+1];
        }
        delete z1;
        return c;
}
 
void main()
 
{ 
    setlocale(LC_ALL, "Russian");
    int  c, k, n, d;
    cout<<"Введите размер массива: "<<endl;
    cin >> n;//ввод размера массива
    cout << "Массив:" << endl;;
    
    int* a = z1(n);
    
    for(int i = 0; i<n; i++)
    {   
        cout << a[i] << " ";
    }
    cout << endl;
    cout<<"Введите позицию элемента"<< endl;
    cin>> d;
    cout <<"Введите значение элемента" << endl;
    cin>> c;
 
    //Вызов функции добавления 
    a = z2(n, c, d, a);
    for(int i = 0; i<n+1; i++)
    {   
        cout << a[i] << " ";
    }
    n++;
    cout <<'\n';
 
    //Вызов функции удаления
    cout<<"Введите позицию элемента для удаления"<< endl;
    cin>> k;
    a = z3(n,a,k);
    for(int i = 0; i<n; i++)
    {   
        cout << a[i] << " ";
    }
    cout <<'\n';
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2012, 06:57
Ответы с готовыми решениями:

Как реализовать работу со списком строк и списком цифр в классе List?
Добрый день! Проблема такая Есть класс-список: #include &quot;stdafx.h&quot;...

Нужны задачки для упражнения в работе со списком, стеком, очередью и двусвязным списком
Недавно научился строить список, стек, очередь, двусвязный список в С++, что бы...

В чем разница между простым линейным списком, и динамическим линейным списком?
вопрос в теме

Как работать со списком на основе массива?
У меня есть структура A у которой есть структурный элемент row. Как мне...

Как работать с двумерным массивом?
Есть такой вот массив: int ary = { { 1, 2, 3, 4, 5 }, { 2, 4, 6, 8,...

2
alsav22
5442 / 4837 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
03.11.2012, 07:44 2
84 строка:
C++
1
for(int i = 0; i < n - 1; i++)
Лучше n передавать в функции по ссылке и там увеличивать или уменьшать, а в main() использовать уже изменённую n.
0
Afflicted
Обитатель форума
199 / 182 / 54
Регистрация: 28.10.2012
Сообщений: 543
03.11.2012, 10:13 3
C++
1
    for(int i = 0; i < (n - 1); i++)
Или так. Иначе будет ошибка, которая не выявляется компилятором, но дает сбой при работе программы.

73-я, 25-я, 42-я строки, то же самое
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2012, 10:13

Работа со строками как с массивом символов
Работаю в Borland C++3.1 Нt понимаю почему не компиллируется, выдает постоянно...

Как правильно создать динамическим массивом
Надо найти маршрут коня на доске произвольного, ограниченного только памятью...

Работа со списком (массивом)
Всем доброго времени суток! Небольшая проблема... Есть список массив,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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