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

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

Войти
Регистрация
Восстановить пароль
 
Zizilk
0 / 0 / 0
Регистрация: 13.09.2009
Сообщений: 19
#1

Проблемы с динамическими структурами - C++

13.09.2009, 23:15. Просмотров 438. Ответов 1
Метки нет (Все метки)

Задача:В составе программы описать функцию, которая включает в упорядоченный по возрастанаию список новое значение, введенное с клавиатуры, таким образом, чтобы не нарушать упорядоченность.

Моё решение: В качестве упорядоченого списка идёт ряд от 10 до 100
Пока не разобрался с функциями. поэтому решение идёт внутри основной программы(листинг с комментариями прикреплен к сообщению)

Проблемы. При выполнении вылазит ошибка Windows (исключение .....) с предложениями пропустить или исправить. При этом программа корректно выполняется(если вставляемое число должно стать первым или последним). При исправлении не нравятся строчки помеченные в листинге

Частично проблему решил. ошибка больше не возникает при добавление в середину и начало, но при добавление в начало ничё не происходит. при добавлении в конец та же ошибка

Компилятор Визуал студио 2005

Код

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
#include <iostream>
#include <clocale>
 
using namespace std;
 
void main()
{setlocale(LC_CTYPE,"Russian");
struct node {   int info;
struct node *next;
};
typedef node *NodePtr;  // указатель на тип node
NodePtr head = NULL;
NodePtr p,v;            // указатель на текущий элемент
NodePtr tail;           // указатель на "хвост" очереди
int N = 10;         // количество элементов в очереди
int cnt = 1;            // счетчик элементов в очереди
 
if (head == NULL)
{   head = new node;
head->info = cnt++*10;  // или какому-то другому значению
head->next = NULL;
tail = head;
}
for (int i = 2; i<=N; i++)
{ p = new node;
p->info = cnt++*10;
tail->next = p;     // в данном случае - NULL
p->next = NULL;
tail = p;
}
// Вывод очереди на экран
p = head;
for (int i = 1; i<=N; i++)
{   cout << p->info << ' ';
p = p->next;
}
cout<<'=';//тут нужно ввести элемент который мы хотим вставить не нарушая очереди, и начиная отсюда нужно вывести следующий код(до *) в функцию
int a;
cin>> a;
p=head;
for (int i=1;i<=N;i++)//Здесь начинается выполнение задачи
{
    if (a<=(p->next)->info) { //проверяем слеудующий за p элемент и если он больше а то а вставляем перед p
        v = new node;
        v->info = a;
        v->next = p->next;
        p->next=v;N++; break;
            }
    else  p = p->next;
}//*
p=head;
for (int i = 1; i<=N++; i++)
{cout<< p->info << ' ';//<- при выборе дебагинга который предлагает сделать винда ей не нравятся эти строчки
p = p->next;
}
cout <<endl;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.09.2009, 23:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проблемы с динамическими структурами (C++):

Работы с динамическими структурами - C++
что то не нравится в объявлении класса, когда пишу функцию добавления, удаления элементов списка struct TList { TList** next;//...

Работа с динамическими структурами данных - C++
Реализовать алгоритм работы с динамической структурой данных – однонаправленный список: элементы добавляются, просматриваются и удаляются с...

Работа с динамическими структурами данных - C++
Организовать двунаправленный список для хранения элементов структуры, содержащей сведения о фамилии, специальности. Предусмотреть...

Работа с динамическими структурами данных - C++
В одномерном динамическом массиве, состоящем из n вещественных чисел вычислить номер максимального по модулю элемента массива.

Программа с динамическими структурами данных - C++
Нужна помощь с написанием данной программы: Создайте очередь для целых чисел. Создайте функции для ввода-вывода и определения размера...

Создание и управление динамическими структурами - C++
Подскажите, как реализовать такое: Создать динамическую структуру, что-то вроде struct str{ char ctr; //массивы с n эл-тами ...

1
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
15.09.2009, 10:41 #2
C++
1
for (int i = 1; i<=N++; i++)
N++ не надо, просто N

C++
1
for (int i = 1; i <= N; i++)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.09.2009, 10:41
Привет! Вот еще темы с ответами:

Классы для работы с динамическими структурами данных - C++
Задали такую задачу, сделал почти все лабы из этой главы, но вот эт и еще одну никак не могу понять... не понимаю что имеется ввиду под...

Написать программу, выполняющую указанные операции с динамическими структурами - C++
Написать программу, выполняющую следующие операции. 1. Создать структуру, описывающую сущность &quot;Кадровый учет&quot; и включающую не менее 5...

Указатели, работа с динамическими структурами данных и динамические списки, стеки - C++
1)Указатели, работа с динамическими структурами данных. Динамическое управление памятью Динамические массивы. Массив должен быть...

Составьте программу, которая создает очередь/стек.(Реализация работы с динамическими структурами) - C++
Добрый день) Помогите вновь, пожалуйста, решить задачки :scratch:: 1. Составьте программу, которая создает очередь из произвольного...


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

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

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