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

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

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

В конце при удалении i-го элемента выводит массив и еще левые числа, подскажите,где ошибка:
http://www.cyberforum.ru/cpp-beginners/thread162890.html
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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос работыас массивом как со списком (C++):

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

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

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

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

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

2
alsav22
5438 / 4833 / 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
Привет! Вот еще темы с решениями:

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

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

Обычную переменную заменить массивом или списком и реализовать события
Есть программа, в ней кроме самого тела Main имеется 2 класа: 1) нужно...

Как сделать цикл со списком имен файлов и списком для их переименования
Здравствуйте, прошу помощи уважаемые форумчане. Есть файлы с определенными...


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

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

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