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

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

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

Не могу найти ошибку в коде - C++

07.06.2012, 17:03. Просмотров 301. Ответов 4
Метки нет (Все метки)

Работаю со связанным списком. нужно удалить из него указанный элемент.
Вот код функции удаления:
C
1
2
3
4
5
6
7
8
9
void List::Delete(int Number){
      int i=1;
         //âñïîìîãГ*òåëüГ*ûì ГіГЄГ*Г§Г*òåëü
      for(Uzel *curr=head;curr =! NULL;curr=curr->next){
        if (DataItem == curr->data) 
                curr->data=curr->next->data;
          }
  printf("Udalenie end\n");
 }
Но почему то работает вот так:
список изначальный такой:
1
2
3
4
5
Какой элемент удалить? 2
Результат:
1
3
3
4
5
Помогите исправить ошибку
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.06.2012, 17:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не могу найти ошибку в коде (C++):

Не могу найти ошибку в коде - C++
Не могу найти ошибку в коде. Помогите плиз. Нужно вычислить приближённое значение суммы этого бесконечного ряда. #include <iostream>...

Не могу найти ошибку в коде - C++
Помогите пожалуйста найти ошибку в коде: #include <fstream> #include <iostream> using namespace std; const int n = 8; ...

Не могу найти ошибку в коде - C++
class genetic { typedef bool* chr; typedef vector<chr> vals; vals population; bool...

Не могу найти ошибку в коде - C++
Доброго времени суток. Не могу найти ошибку в коде. Задача: Периодическая функция F(x) определена на всей числовой прямой и имеет период...

Не могу найти ошибку в коде - C++
Привет всем. У меня не получается построить решение. Вот код. #include <conio.h> #include <iostream> #include <clocale> using...

Не могу найти ошибку в коде - C++
Добрый вечер. Собственно, в универе дали задачу Программу я сделал, работает она верно при небольшой разнице начальной и конечной...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
sandye51
программист С++
684 / 586 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
07.06.2012, 17:06 #2
потому что надо не дату копировать, а указатель на след звено
C++
1
2
3
4
5
6
7
if (..)
{
Uzel* tmp = curr->next;
curr->next=curr->next->next;
delete tmp;
tmp = NULL;
}
но только еще надо сделать проверку - если удаляемое звено последнее, то curr->next = NULL;
1
Nastya19kiss
0 / 0 / 0
Регистрация: 25.04.2012
Сообщений: 54
07.06.2012, 17:36  [ТС] #3
подскажите пожалуйста как вставить элемент в список на указанное место
0
sandye51
программист С++
684 / 586 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
07.06.2012, 17:38 #4
указанное это какое - по индексу или прям Uzel* родительский дан?
0
Nastya19kiss
0 / 0 / 0
Регистрация: 25.04.2012
Сообщений: 54
07.06.2012, 18:14  [ТС] #5
по индексу

Добавлено через 1 минуту
Заготовка есть
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  void Insert(int Number, int DataItem){ 
  Number--;
  Uzel *NewItem=new(Uzel);
  NewItem->data=DataItem; 
  NewItem->next = NULL;
 //ñïèñîê Г*ГҐ ГЇГіГ±ГІ
Uzel *Current = head;
    for(int i=1; i < Number && Current->next!=NULL; i++)
    Current=Current->next;
    if (Number == 0){
    //ГўГ±ГІГ*âëÿåì Г*îâûé ýëåìåГ*ГІ Г*Г* ïåðâîå ìåñòî
      NewItem->next = head;
      head = NewItem;
    }
    else {//ГўГ±ГІГ*âëÿåì Г*îâûé ýëåìåГ*ГІ Г*Г* Г*åïåðâîå ìåñòî
      if (Current->next != NULL) 
        NewItem->next = Current->next;
      Current->next = NewItem;
    }
    printf("Element vstavlen!!!\n")
Но выдает ошибки:
C:\Users\Ïîëüçîâàòåëü\Documents\Ëèòåðàòóðà äëÿ èíñòèòóòà\Îïåðàöèîííûå ñèñòåìû\volkova (1)\volkova\OS\lab5.cpp(93) : error C2065: 'head' : undeclared identifier
C:\Users\Ïîëüçîâàòåëü\Documents\Ëèòåðàòóðà äëÿ èíñòèòóòà\Îïåðàöèîííûå ñèñòåìû\volkova (1)\volkova\OS\lab5.cpp(93) : error C2440: 'initializing' : cannot convert from 'int' to 'class Uzel *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
C:\Users\Ïîëüçîâàòåëü\Documents\Ëèòåðàòóðà äëÿ èíñòèòóòà\Îïåðàöèîííûå ñèñòåìû\volkova (1)\volkova\OS\lab5.cpp(98) : error C2440: '=' : cannot convert from 'int' to 'class Uzel *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
C:\Users\Ïîëüçîâàòåëü\Documents\Ëèòåðàòóðà äëÿ èíñòèòóòà\Îïåðàöèîííûå ñèñòåìû\volkova (1)\volkova\OS\lab5.cpp(99) : error C2440: '=' : cannot convert from 'class Uzel *' to 'int'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast

Добавлено через 9 минут
Я баран!!!я нашла ошибку

Добавлено через 4 минуты
Тогда может если Вам не сложно то поможете мне с сортировкой пузырьком в этом списке???

Добавлено через 12 минут
Вот то что у меня получилось с сортировкой:
C
1
2
3
4
5
6
7
8
9
10
11
void List::Sort(){
      int trash=0;
      for(Uzel *curr=head;curr =! NULL;curr=curr->next){
          if(curr->data > curr->next->data){
              trash = curr->data;
              curr->data = curr->next->data;
              curr->next->data = trash;
          }
      }
   printf("Sortirovka end\n");
  }
Но работает не правильно. я в цикле что то напутала, исправте меня пожалуйста
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.06.2012, 18:14
Привет! Вот еще темы с ответами:

Не могу найти ошибку в коде - C++
Здравствуйте еще раз! У меня возникла проблема: В написанном мною коде какая то ошибка, которую ни я, ни компилятор, не может выявить. ...

Не могу найти ошибку в коде - C++
Игра &quot;БлэкДжек&quot; Ошибка - &quot;Прекращена работ программы&quot;. С чем это связано - не могу понять... // Д/З 25 Блэк-Джек #include...

Не могу найти ошибку в коде :( - C++
#include &lt;stdio.h&gt; #include &lt;math.h&gt; #include &lt;conio.h&gt; void main () { clrscr(); float eps=0.0001; float x,S,ocr; scanf...

Не могу найти ошибку в коде - C++
Задание такое: в текстовом файле находятся данные про радиусы основ и высот 15 конусов. Нужно записать в другой файл таблицу, которая...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
07.06.2012, 18:14
Ответ Создать тему
Опции темы

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